2025年2月22日土曜日

Excel VBA を使って、細かくしたセルを塗りつぶして日の丸を描くコードは

 はい、承知いたしました。Excel VBA を使って、細かくしたセルを塗りつぶして日の丸を描くコードをご説明します。

コード

VBA
Sub Hinomaru()

  ' 変数の宣言
  Dim i As Long, j As Long
  Dim centerX As Long, centerY As Long
  Dim radius As Long

  ' 日の丸を描く範囲(セルの数)を設定
  Dim width As Long, height As Long
  width = 500 ' 横幅
  height = 500 ' 高さ

  ' 中心座標と半径を設定
  centerX = width / 2
  centerY = height / 2
  radius = width / 4

  ' シートの指定
  With ThisWorkbook.Worksheets("Sheet1") ' "Sheet1" はシート名

    ' セルの塗りつぶしを初期化
    .Range("A1").Resize(height, width).Interior.Color = vbWhite

    ' 日の丸の円を描く
    For i = 1 To height
      For j = 1 To width
        If (i - centerY) ^ 2 + (j - centerX) ^ 2 <= radius ^ 2 Then
          .Cells(i, j).Interior.Color = vbRed
        End If
      Next j
    Next i

  End With

End Sub

解説

  1. 変数の宣言:

    • i, j: ループカウンター
    • centerX, centerY: 円の中心座標
    • radius: 円の半径
    • width, height: 日の丸を描く範囲(セルの数)
  2. 範囲の設定:

    • width, height で、日の丸を描く範囲(セル数)を指定します。
    • 必要に応じて変更してください。
  3. 中心座標と半径の設定:

    • centerX, centerY で円の中心座標を計算します。
    • radius で円の半径を設定します。
  4. シートの指定:

    • ThisWorkbook.Worksheets("Sheet1") で、コードを実行するシートを指定します。
    • "Sheet1" はシート名です。必要に応じて変更してください。
  5. セルの塗りつぶし初期化:

    • Range("A1").Resize(height, width).Interior.Color = vbWhite で、指定範囲のセルを白色に初期化します。
  6. 日の丸の円を描く:

    • 2重ループで、指定範囲の各セルをチェックします。
    • (i - centerY) ^ 2 + (j - centerX) ^ 2 <= radius ^ 2 の条件式で、セルが円の内側にあるかどうかを判定します。
    • 円の内側にあるセルは vbRed(赤色)で塗りつぶします。

使い方

  1. Excel を開いて VBA エディターを開きます(Alt + F11)。
  2. 標準モジュールを挿入します(挿入 > 標準モジュール)。
  3. コードを標準モジュールに貼り付けます。
  4. コードを実行します(F5 キーまたは実行ボタン)。

注意点

  • コードを実行する前に、シート名が正しいか確認してください。
  • 範囲(セル数)や中心座標、半径を調整することで、日の丸のサイズや位置を変更できます。

ご不明な点がありましたら、お気軽にお尋ねください。

実行例



0 件のコメント:

コメントを投稿