土曜日, 6月 17, 2023

Excel VBA 21 
セルの塗りつぶしで国旗を描く

単純なセルの塗りつぶしで国旗を描居てみました。作図としてセルのサイズを正方形の方眼にするのも一考しましたが、世界の国旗の比率は必ずしも同じではないので、デフォルトのセル状況で作成することにしました。

というコトで三色旗系は[B2:G13]で作成することにしました。これは後述するスウェーデンの国旗を考慮してサイズを近づけることにしました。

上はOfficeのカラー番号での近似色です。
--------------------
Sub ドイツ国旗()
Range("b2:g5").Interior.ColorIndex = 1
Range("b6:g9").Interior.ColorIndex = 3
Range("b10:g13").Interior.ColorIndex = 6
Range("b2:g13").BorderAround Weight:=xlThin
End Sub
--------------------
正確に色指定する場合は
--------------------
Sub ドイツ国旗()
Range("b2:g5").Interior.Color = RGB(0, 0, 0)
Range("b6:g9").Interior.Color = RGB(221, 0, 0)
Range("b10:g13").Interior.Color = RGB(255, 206, 0)
Range("b2:g13").BorderAround Weight:=xlThin
' 黒色が000000 赤、色が dd0000 、金色が、 ffcf00
End Sub
--------------------
色指定は以下を参照してください。

上はOfficeのカラー番号での近似色です。
--------------------
Sub イタリア国旗()
Range("b2:c13").Interior.ColorIndex = 10
Range("d2:e13").Interior.ColorIndex = 2
Range("f2:g13").Interior.ColorIndex = 3
Range("b2:g13").BorderAround Weight:=xlThin
End Sub
--------------------
正確に色指定する場合は・・・
--------------------
Sub イタリア国旗()
Range("b2:c13").Interior.Color = RGB(0, 146, 70)
Range("d2:e13").Interior.Color = RGB(255, 255, 255)
Range("f2:g13").Interior.Color = RGB(206, 43, 55)
Range("b2:g13").BorderAround Weight:=xlThin
'緑が009246 、白がffffff、赤が ce2b37
End Sub
--------------------
スウェーデンの国旗は[B2:H14]で作成することにしました。

上はOfficeのカラー番号での近似色です。
--------------------
Sub スウェーデン国旗()
Range("b2:h14").Interior.ColorIndex = 41
Range("b7:h9").Interior.ColorIndex = 6
Range("d2:d14").Interior.ColorIndex = 6
Range("b2:h14").BorderAround Weight:=xlThin
End Sub
--------------------
正確に色指定する場合は
--------------------
Sub スウェーデン国旗()
Range("b2:h14").Interior.Color = RGB(0, 106, 167)
Range("b7:h9").Interior.Color = RGB(254, 204, 0)
Range("d2:d14").Interior.Color = RGB(254, 204, 0)
Range("b2:h14").BorderAround Weight:=xlThin
'金色が#fecc00、青色が#006aa7
End Sub
--------------------
全体を青で塗りつぶしてから、水平に黄色帯、垂直の黄色帯です。
ここで、列幅を行と同じに設定した方眼状態にした方がいい感じと気がつきました。
--------------------
Sub ドイツ国旗()
Range("a:t").Columns.ColumnWidth = 2
Range("b2:s5").Interior.Color = RGB(0, 0, 0)
Range("b6:s9").Interior.Color = RGB(221, 0, 0)
Range("b10:s13").Interior.Color = RGB(255, 206, 0)
Range("b2:s13").BorderAround Weight:=xlThin
' 黒色が000000 、赤色が dd0000 、金色が、 ffcf00
End Sub
--------------------
この方が設計しやすいですね
--------------------
Sub イタリア国旗()
Range("a:t").Columns.ColumnWidth = 2
Range("b2:g13").Interior.Color = RGB(0, 146, 70)
Range("h2:m13").Interior.Color = RGB(255, 255, 255)
Range("n2:s13").Interior.Color = RGB(206, 43, 55)
Range("b2:s13").BorderAround Weight:=xlThin
'緑が009246 、白がffffff、赤が ce2b37
End Sub
--------------------
これでスウェーデンと無理なくサイズを合わせられます
--------------------
Sub スウェーデン国旗()
Range("a:t").Columns.ColumnWidth = 2
Range("b2:s14").Interior.Color = RGB(0, 106, 167)
Range("b7:s9").Interior.Color = RGB(254, 204, 0)
Range("f2:h14").Interior.Color = RGB(254, 204, 0)
Range("b2:s14").BorderAround Weight:=xlThin
'金色が#fecc00、青色が#006aa7
End Sub
--------------------