Created
July 11, 2012 06:21
-
-
Save honda0510/3088353 to your computer and use it in GitHub Desktop.
条件付き書式で設定した色を取得する http://www.moug.net/faq/viewtopic.php?t=63769
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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