Skip to content

Instantly share code, notes, and snippets.

@honda0510
Created July 11, 2012 06:21
Show Gist options
  • Save honda0510/3088353 to your computer and use it in GitHub Desktop.
Save honda0510/3088353 to your computer and use it in GitHub Desktop.
条件付き書式で設定した色を取得する http://www.moug.net/faq/viewtopic.php?t=63769
Option Explicit
' README
' 条件付き書式で設定した色を取得する
' http://www.moug.net/faq/viewtopic.php?t=63769
'
' これ用に書いてみた
' 必要なモジュール
' クリップボードを操作する方法 | YU-TANG's MS-Access Discovery
' http://www.f3.dion.ne.jp/~element/msaccess/AcTipsClipboard.html
' こちらからClipDemo.zipをダウンロードして、
' 標準モジュール「modClipboard」と
' クラスモジュール「cClipboard」を
' 自ファイルにインポートしてください。
' 参照設定
' Microsoft Scripting Runtime
' Microsoft VBScript Regular Expressions 5.5
' 使い方
' 条件付き書式で背景色が設定されているセルを選択してtestマクロを実行
' 選択したセルの背景色を下のセルに設定し、背景色を16進数で表示する
Sub test()
Dim ColorCode As String
ColorCode = GetColorCode(ActiveCell)
If Left$(ColorCode, 1) = "#" Then
ActiveCell.Offset(1).Interior.Color = ColorCode2RGB(ColorCode)
MsgBox ColorCode
Else
MsgBox "この色はうまくいきません: " & ColorCode
End If
End Sub
Function GetColorCode(Cell As Range) As String
Dim html As String
Dim Reg As RegExp
Dim Matches As MatchCollection
Dim ColorName As String
html = CopyAndGetHTML(Cell)
Set Reg = New RegExp
Reg.Pattern = "\bbackground\s*:\s*(\S+?);"
Reg.IgnoreCase = True
Set Matches = Reg.Execute(html)
If Matches.Count > 0 Then
ColorName = Matches.Item(0).SubMatches.Item(0)
GetColorCode = ColorName2ColorCode(ColorName)
End If
End Function
Function CopyAndGetHTML(Cell As Range) As String
Dim html As String
Cell.Copy
If Clipboard.ContainsAny("HTML Format") Then
html = Clipboard.html.Fragment
html = Replace(html, vbCr, "")
html = Replace(html, vbLf, "")
CopyAndGetHTML = Trim(html)
End If
Application.CutCopyMode = False
End Function
Function ColorName2ColorCode(ColorName As String) As String
Select Case LCase(ColorName)
Case "white": ColorName2ColorCode = "#FFFFFF"
Case "whitesmoke": ColorName2ColorCode = "#F5F5F5"
Case "gainsboro": ColorName2ColorCode = "#DCDCDC"
Case "lightgrey": ColorName2ColorCode = "#D3D3D3"
Case "silver": ColorName2ColorCode = "#C0C0C0"
Case "darkgray": ColorName2ColorCode = "#A9A9A9"
Case "gray": ColorName2ColorCode = "#808080"
Case "dimgray": ColorName2ColorCode = "#696969"
Case "black": ColorName2ColorCode = "#000000"
Case "red": ColorName2ColorCode = "#FF0000"
Case "orangered": ColorName2ColorCode = "#FF4500"
Case "tomato": ColorName2ColorCode = "#FF6347"
Case "coral": ColorName2ColorCode = "#FF7F50"
Case "salmon": ColorName2ColorCode = "#FA8072"
Case "lightsalmon": ColorName2ColorCode = "#FFA07A"
Case "darksalmon": ColorName2ColorCode = "#E9967A"
Case "peru": ColorName2ColorCode = "#CD853F"
Case "saddlebrown": ColorName2ColorCode = "#8B4513"
Case "sienna": ColorName2ColorCode = "#A0522D"
Case "chocolate": ColorName2ColorCode = "#D2691E"
Case "sandybrown": ColorName2ColorCode = "#F4A460"
Case "darkred": ColorName2ColorCode = "#8B0000"
Case "maroon": ColorName2ColorCode = "#800000"
Case "brown": ColorName2ColorCode = "#A52A2A"
Case "firebrick": ColorName2ColorCode = "#B22222"
Case "crimson": ColorName2ColorCode = "#DC143C"
Case "indianred": ColorName2ColorCode = "#CD5C5C"
Case "lightcoral": ColorName2ColorCode = "#F08080"
Case "rosybrown": ColorName2ColorCode = "#BC8F8F"
Case "palevioletred": ColorName2ColorCode = "#DB7093"
Case "deeppink": ColorName2ColorCode = "#FF1493"
Case "hotpink": ColorName2ColorCode = "#FF69B4"
Case "lightpink": ColorName2ColorCode = "#FFB6C1"
Case "pink": ColorName2ColorCode = "#FFC0CB"
Case "mistyrose": ColorName2ColorCode = "#FFE4E1"
Case "linen": ColorName2ColorCode = "#FAF0E6"
Case "seashell": ColorName2ColorCode = "#FFF5EE"
Case "lavenderblush": ColorName2ColorCode = "#FFF0F5"
Case "snow": ColorName2ColorCode = "#FFFAFA"
Case "yellow": ColorName2ColorCode = "#FFFF00"
Case "gold": ColorName2ColorCode = "#FFD700"
Case "orange": ColorName2ColorCode = "#FFA500"
Case "darkorange": ColorName2ColorCode = "#FF8C00"
Case "goldenrod": ColorName2ColorCode = "#DAA520"
Case "darkgoldenrod": ColorName2ColorCode = "#B8860B"
Case "darkkhaki": ColorName2ColorCode = "#BDB76B"
Case "burlywood": ColorName2ColorCode = "#DEB887"
Case "tan": ColorName2ColorCode = "#D2B48C"
Case "khaki": ColorName2ColorCode = "#F0E68C"
Case "peachpuff": ColorName2ColorCode = "#FFDAB9"
Case "navajowhite": ColorName2ColorCode = "#FFDEAD"
Case "palegoldenrod": ColorName2ColorCode = "#EEE8AA"
Case "moccasin": ColorName2ColorCode = "#FFE4B5"
Case "wheat": ColorName2ColorCode = "#F5DEB3"
Case "bisque": ColorName2ColorCode = "#FFE4C4"
Case "blanchedalmond": ColorName2ColorCode = "#FFEBCD"
Case "papayawhip": ColorName2ColorCode = "#FFEFD5"
Case "cornsilk": ColorName2ColorCode = "#FFF8DC"
Case "lightyellow": ColorName2ColorCode = "#FFFFE0"
Case "lightgoldenrodyellow": ColorName2ColorCode = "#FAFAD2"
Case "lemonchiffon": ColorName2ColorCode = "#FFFACD"
Case "antiquewhite": ColorName2ColorCode = "#FAEBD7"
Case "beige": ColorName2ColorCode = "#F5F5DC"
Case "oldlace": ColorName2ColorCode = "#FDF5E6"
Case "ivory": ColorName2ColorCode = "#FFFFF0"
Case "floralwhite": ColorName2ColorCode = "#FFFAF0"
Case "greenyellow": ColorName2ColorCode = "#ADFF2F"
Case "yellowgreen": ColorName2ColorCode = "#9ACD32"
Case "olive": ColorName2ColorCode = "#808000"
Case "darkolivegreen": ColorName2ColorCode = "#556B2F"
Case "olivedrab": ColorName2ColorCode = "#6B8E23"
Case "chartreuse": ColorName2ColorCode = "#7FFF00"
Case "lawngreen": ColorName2ColorCode = "#7CFC00"
Case "lime": ColorName2ColorCode = "#00FF00"
Case "limegreen": ColorName2ColorCode = "#32CD32"
Case "forestgreen": ColorName2ColorCode = "#228B22"
Case "green": ColorName2ColorCode = "#008000"
Case "darkgreen": ColorName2ColorCode = "#006400"
Case "seagreen": ColorName2ColorCode = "#2E8B57"
Case "mediumseagreen": ColorName2ColorCode = "#3CB371"
Case "darkseagreen": ColorName2ColorCode = "#8FBC8F"
Case "lightgreen": ColorName2ColorCode = "#90EE90"
Case "palegreen": ColorName2ColorCode = "#98FB98"
Case "springgreen": ColorName2ColorCode = "#00FF7F"
Case "mediumspringgreen": ColorName2ColorCode = "#00FA9A"
Case "honeydew": ColorName2ColorCode = "#F0FFF0"
Case "mintcream": ColorName2ColorCode = "#F5FFFA"
Case "azure": ColorName2ColorCode = "#F0FFFF"
Case "lightcyan": ColorName2ColorCode = "#E0FFFF"
Case "aliceblue": ColorName2ColorCode = "#F0F8FF"
Case "darkslategray": ColorName2ColorCode = "#2F4F4F"
Case "steelblue": ColorName2ColorCode = "#4682B4"
Case "mediumaquamarine": ColorName2ColorCode = "#66CDAA"
Case "aquamarine": ColorName2ColorCode = "#7FFFD4"
Case "mediumturquoise": ColorName2ColorCode = "#48D1CC"
Case "turquoise": ColorName2ColorCode = "#40E0D0"
Case "lightseagreen": ColorName2ColorCode = "#20B2AA"
Case "darkcyan": ColorName2ColorCode = "#008B8B"
Case "teal": ColorName2ColorCode = "#008080"
Case "cadetblue": ColorName2ColorCode = "#5F9EA0"
Case "darkturquoise": ColorName2ColorCode = "#00CED1"
Case "aqua": ColorName2ColorCode = "#00FFFF"
Case "cyan": ColorName2ColorCode = "#00FFFF"
Case "lightblue": ColorName2ColorCode = "#ADD8E6"
Case "powderblue": ColorName2ColorCode = "#B0E0E6"
Case "paleturquoise": ColorName2ColorCode = "#AFEEEE"
Case "skyblue": ColorName2ColorCode = "#87CEEB"
Case "lightskyblue": ColorName2ColorCode = "#87CEFA"
Case "deepskyblue": ColorName2ColorCode = "#00BFFF"
Case "dodgerblue": ColorName2ColorCode = "#1E90FF"
Case "ghostwhite": ColorName2ColorCode = "#F8F8FF"
Case "lavender": ColorName2ColorCode = "#E6E6FA"
Case "lightsteelblue": ColorName2ColorCode = "#B0C4DE"
Case "slategray": ColorName2ColorCode = "#708090"
Case "lightslategray": ColorName2ColorCode = "#778899"
Case "indigo": ColorName2ColorCode = "#4B0082"
Case "darkslateblue": ColorName2ColorCode = "#483D8B"
Case "midnightblue": ColorName2ColorCode = "#191970"
Case "navy": ColorName2ColorCode = "#000080"
Case "darkblue": ColorName2ColorCode = "#00008B"
Case "slateblue": ColorName2ColorCode = "#6A5ACD"
Case "mediumslateblue": ColorName2ColorCode = "#7B68EE"
Case "cornflowerblue": ColorName2ColorCode = "#6495ED"
Case "royalblue": ColorName2ColorCode = "#4169E1"
Case "mediumblue": ColorName2ColorCode = "#0000CD"
Case "blue": ColorName2ColorCode = "#0000FF"
Case "thistle": ColorName2ColorCode = "#D8BFD8"
Case "plum": ColorName2ColorCode = "#DDA0DD"
Case "orchid": ColorName2ColorCode = "#DA70D6"
Case "violet": ColorName2ColorCode = "#EE82EE"
Case "fuchsia": ColorName2ColorCode = "#FF00FF"
Case "magenta": ColorName2ColorCode = "#FF00FF"
Case "mediumpurple": ColorName2ColorCode = "#9370DB"
Case "mediumorchid": ColorName2ColorCode = "#BA55D3"
Case "darkorchid": ColorName2ColorCode = "#9932CC"
Case "blueviolet": ColorName2ColorCode = "#8A2BE2"
Case "darkviolet": ColorName2ColorCode = "#9400D3"
Case "purple": ColorName2ColorCode = "#800080"
Case "darkmagenta": ColorName2ColorCode = "#8B008B"
Case "mediumvioletred": ColorName2ColorCode = "#C71585"
Case Else: ColorName2ColorCode = ColorName
End Select
End Function
Function ColorCode2RGB(ByVal ColorCode As String) As Long
Dim Red As Integer
Dim Green As Integer
Dim Blue As Integer
If Left(ColorCode, 1) = "#" Then
ColorCode = Mid$(ColorCode, 2)
End If
Red = CInt("&h" & Mid$(ColorCode, 1, 2))
Green = CInt("&h" & Mid$(ColorCode, 3, 2))
Blue = CInt("&h" & Mid$(ColorCode, 5, 2))
ColorCode2RGB = RGB(Red, Green, Blue)
End Function
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment