VBAのLineで描画を行う方法をわかりやすく解説

スポンサーリンク
スポンサーリンク

Lineの概要

描画処理 VBAの予約語

Line

概要 Line ステートメントは、VBAの UserFormPictureBox 上に線や四角形を描画するために使用されます。

わかりやすく説明 Line は、VBAで「ここからここまで線を引いて!」と指示するためのものです。ユーザーフォームやキャンバス(PictureBox)上に線や四角形を描くことができます。

  • UserFormPictureBox に線を描く。
  • 開始座標と終了座標を指定する。
  • 線の色を指定できる。
  • 四角形を描くことも可能。

Lineの基本的な使い方

UserForm上に線を描画する例です。

Private Sub UserForm_Activate()
    Me.Cls ' 画面をクリア
    Me.Line (10, 10)-(100, 100), vbRed
End Sub

解説:

  • Me.Line (10, 10)-(100, 100), vbRed は、(10,10) から (100,100) まで赤色の線を引く。
  • Me.Cls は、既存の描画を消去する。

四角形を描画する

四角形を描くには、最後に , B を追加します。

Private Sub UserForm_Activate()
    Me.Cls
    Me.Line (20, 20)-(120, 80), vbBlue, B
End Sub

解説:

  • B を指定すると、四角形を描画できる。
  • この例では、(20,20) から (120,80) までの青い四角形を描画する。

塗りつぶしの四角形を描画

四角形を塗りつぶすには、B の後に F を追加します。

Private Sub UserForm_Activate()
    Me.Cls
    Me.Line (30, 30)-(130, 90), vbGreen, BF
End Sub

解説:

  • BF を指定すると、四角形を塗りつぶすことができる。
  • この例では、(30,30) から (130,90) までの緑色の塗りつぶされた四角形を描画する。

エラーを回避する方法

描画処理でエラーが発生しないように、エラーハンドリングを追加することを推奨します。

Private Sub UserForm_Activate()
    On Error Resume Next
    Me.Cls
    Me.Line (50, 50)-(200, 150), vbBlack, B
    
    If Err.Number <> 0 Then
        MsgBox "エラー発生: " & Err.Description, vbExclamation, "エラー"
        Err.Clear
    End If
End Sub

解説:

  • On Error Resume Next を使い、エラーが発生しても処理を継続。
  • エラーが発生した場合は、エラーメッセージを表示する。

Lineの注意事項

  • 描画はUserFormやPictureBoxに限定される: シート上には直接描画できない。
  • 座標はピクセル単位: 位置指定にはピクセル単位を使用する。
  • 既存の描画は消えない: 新しい線を描画しても、前の線は残る。消したい場合は Cls を使用する。
  • 重い処理になる可能性: 大量の描画処理を行うと、処理が遅くなる場合がある。

よくある質問

Q: シート上に線を描くことはできますか?
A: いいえ。Line ステートメントは UserForm や PictureBox でのみ使用できます。
Q: 塗りつぶしの色を変更できますか?
A: Line ステートメントだけではできませんが、PictureBoxを使うとカスタムカラーで塗りつぶしが可能です。
Q: 画面が更新されない場合はどうすればいいですか?
A: Me.Refresh を使用すると、描画が即座に反映されます。
Q: 既存の線を消す方法は?
A: Me.Cls を実行すると、すべての描画がクリアされます。

まとめ

  • Line ステートメントを使うと、VBAのUserFormやPictureBox上に線を描画できる。
  • 四角形の描画や塗りつぶしも可能。
  • 描画した内容を消すには Cls を使用する。
  • シート上には描画できず、フォーム上でのみ動作する。
  • エラーハンドリングを適用して予期しないエラーを防ぐ。