<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; VBA: отображение RGB-кодов палитры цветов на рабочем листе Excel]]></title>
	<link rel="self" href="http://forum.script-coding.com/extern.php?action=feed&amp;tid=3519&amp;type=atom" />
	<updated>2009-08-12T05:29:18Z</updated>
	<generator>PunBB</generator>
	<id>http://forum.script-coding.com/viewtopic.php?id=3519</id>
		<entry>
			<title type="html"><![CDATA[VBA: отображение RGB-кодов палитры цветов на рабочем листе Excel]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=27023#p27023" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[alexii]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=1844</uri>
			</author>
			<updated>2009-08-12T05:29:18Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=27023#p27023</id>
		</entry>
</feed>
