<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; VBA: отображение RGB-кодов палитры цветов на рабочем листе Excel]]></title>
		<link>http://forum.script-coding.com/viewtopic.php?id=3519</link>
		<atom:link href="http://forum.script-coding.com/extern.php?action=feed&amp;tid=3519&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «VBA: отображение RGB-кодов палитры цветов на рабочем листе Excel».]]></description>
		<lastBuildDate>Wed, 12 Aug 2009 05:29:18 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[VBA: отображение RGB-кодов палитры цветов на рабочем листе Excel]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=27023#p27023</link>
			<description><![CDATA[<p>Для использования вставьте текст процедуры в код модуля рабочей книги Microsoft Excel и исполните её.<br />На активном рабочем листе будет нарисована таблица из 56 цветов палитры, номера цвета в палитре и соответствующих им значений цветовых составляющих Red, Green и Blue.<br /></p><div class="codebox"><pre><code>Sub PrintRGBColorPalette()
    &#039;
    &#039; Отображение RGB-кодов палитры в EXCEL
    &#039;
    &#039; В каждой книге Microsoft Excel имеется палитра из 56 цветов,
    &#039; которые могут использоваться в ячейках, шрифтах,
    &#039; линиях сетки и графических объектах листа, а также линиях и элементах
    &#039;
    &#039; Скрипт взят из книги:
    &#039; Кертис Фрай - &quot;Хитрости Excel&quot;
    &#039;
    Dim intNumColor As Integer
    Dim rgbVal As Long
    
    Range(&quot;A1&quot;).Select
    
    With ActiveCell
        .Formula = &quot;Color&quot;
        .Offset(0, 1).Value = &quot;Index&quot;
        .Offset(0, 3).Value = &quot;Red&quot;
        .Offset(0, 4).Value = &quot;Green&quot;
        .Offset(0, 5).Value = &quot;Blue&quot;
        .Offset(1, 0).Activate
    End With
    
    For intNumColor = 1 To 56
        With ActiveCell
            .Interior.ColorIndex = intNumColor
            rgbVal = .Interior.Color
            
            .Offset(0, 1).Formula = .Interior.ColorIndex
            .Offset(0, 3).Value = rgbVal And &amp;HFF
            .Offset(0, 4).Value = rgbVal \ &amp;H100 And &amp;HFF
            .Offset(0, 5).Value = rgbVal \ &amp;H10000 And &amp;HFF
            .Offset(1, 0).Activate
        End With
    Next intNumColor
End Sub</code></pre></div><p>Автор идеи — <strong>volkov888</strong>.</p><p>От себя напомню, что цвета палитры рабочей книги могут быть переопределены в любой момент. Например, поменяем местами черный и белый цвета в палитре (по умолчанию в палитре Color(1) — чёрный, Color(2) — белый):<br /></p><div class="codebox"><pre><code>ActiveWorkbook.Colors(1) = RGB(255, 255, 255)
ActiveWorkbook.Colors(2) = RGB(0, 0, 0)</code></pre></div><p>Цвета могут определяться произвольным образом. Например код:<br /></p><div class="codebox"><pre><code>For i = 1 To 56
    ActiveWorkbook.Colors(i) = RGB(0, 0, 255 - i * 4)
Next i</code></pre></div><p>определит палитру только из оттенков синего цвета.</p>]]></description>
			<author><![CDATA[null@example.com (alexii)]]></author>
			<pubDate>Wed, 12 Aug 2009 05:29:18 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=27023#p27023</guid>
		</item>
	</channel>
</rss>
