エクセルVBAで多数のセルの塗りつぶしを使ってドーナツ形状を描画するコードは、いくつかの方法で実現できます。ここでは、比較的シンプルな方法と、少し応用的な方法の2つを紹介します。
方法1:単純な塗りつぶしによるドーナツ
この方法は、ドーナツの形状を単純な塗りつぶしで表現するものです。
VBA
Sub DrawDonut()
Dim centerRow As Long, centerCol As Long
Dim radiusOuter As Long, radiusInner As Long
Dim row As Long, col As Long
' ドーナツの中心座標と半径を設定
centerRow = 10
centerCol = 10
radiusOuter = 5
radiusInner = 3
' シートの塗りつぶしをクリア
Cells.Interior.Color = xlNone
' 外側の円を塗りつぶす
For row = centerRow - radiusOuter To centerRow + radiusOuter
For col = centerCol - radiusOuter To centerCol + radiusOuter
If (row - centerRow) ^ 2 + (col - centerCol) ^ 2 <= radiusOuter ^ 2 Then
Cells(row, col).Interior.Color = vbRed ' 色は自由に設定
End If
Next col
Next row
' 内側の円を塗りつぶしなしにする
For row = centerRow - radiusInner To centerRow + radiusInner
For col = centerCol - radiusInner To centerCol + radiusInner
If (row - centerRow) ^ 2 + (col - centerCol) ^ 2 <= radiusInner ^ 2 Then
Cells(row, col).Interior.Color = xlNone
End If
Next col
Next row
End Sub
このコードでは、まずドーナツの中心座標と外側・内側の半径を設定します。次に、シート全体の塗りつぶしをクリアし、外側の円を赤色で塗りつぶします。最後に、内側の円を塗りつぶしなしにすることで、ドーナツ形状を描画します。
方法2:図形(円)の組み合わせによるドーナツ
この方法は、2つの円の図形を組み合わせてドーナツ形状を描画するものです。
VBA
Sub DrawDonutShape()
Dim centerTop As Double, centerLeft As Double
Dim radiusOuter As Double, radiusInner As Double
' ドーナツの中心座標と半径を設定
centerTop = 100
centerLeft = 100
radiusOuter = 50
radiusInner = 30
' 外側の円を作成
With ActiveSheet.Shapes.AddShape(msoShapeOval, centerLeft - radiusOuter, centerTop - radiusOuter, radiusOuter * 2, radiusOuter * 2)
.Fill.ForeColor.RGB = vbRed ' 色は自由に設定
.Line.Visible = msoFalse ' 枠線を非表示
End With
' 内側の円を作成
With ActiveSheet.Shapes.AddShape(msoShapeOval, centerLeft - radiusInner, centerTop - radiusInner, radiusInner * 2, radiusInner * 2)
.Fill.ForeColor.RGB = vbWhite ' 背景色と同じ色に設定
.Line.Visible = msoFalse ' 枠線を非表示
End With
End Sub
このコードでは、まずドーナツの中心座標と外側・内側の半径を設定します。次に、外側の円と内側の円の2つの図形を作成し、それぞれの色と枠線を設定することで、ドーナツ形状を描画します。
どちらの方法を選ぶべきか
どちらの方法を選ぶべきかは、どのようなドーナツを描画したいかによって異なります。
- 方法1 は、単純なドーナツ形状をセル単位で表現するのに適しています。セルの塗りつぶしを利用するため、塗りつぶし色やパターンを細かく設定できます。
- 方法2 は、図形としてドーナツ形状を表現するのに適しています。図形のサイズや位置を自由に設定でき、拡大・縮小にも対応できます。
その他
- 上記コードでは、ドーナツの色を赤色に設定していますが、
vbRed
の部分を他の色に変更することで、ドーナツの色を変更できます。 - ドーナツのサイズや位置は、コード中の変数を変更することで調整できます。
- より複雑なドーナツ形状を描画したい場合は、複数の円弧や多角形を組み合わせて表現する方法もあります。
これらの情報を参考に、目的に合った方法でドーナツ形状を描画してみてください。
0 件のコメント:
コメントを投稿