スポンサーリンク
初めに
本記事では、VBAで、指定の図形(オートシェイプ)を挿入することが出来るマクロを作成します。
解説する内容は、以下の通りです。
- 指定の図形を挿入する。
(図形のサイズ、挿入位置の方法) - 図形の中に、文字を入力する。
- 図形の書式を変更する。
(枠線の太さ、枠線の色、背景色の変更)
Shapes.AddShapeメソッド
Shapes.AddShapeを使用することで図形を挿入することが出来ます。
- 図形タイプ:挿入したい図形タイプを指定
- Left:図形の挿入する位置を指定
- Top:図形の挿入する位置を指定
- Width:挿入する図形の幅を指定
- Height:挿入する図形の高さを指定
図形タイプは、Microsoft公式サイトの方で一覧が掲載されているので参考にしてください。
四角形の図形を挿入
Rangeで指定した範囲の位置とサイズを使用して、四角形の図形を挿入するプログラムになります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | Sub 図形挿入() Dim iShapeCd As Integer Dim rRange As Range Dim sShape As Shape iShapeCd = msoShapeRectangle Set rRange = Range("C10:E12") With rRange Set sShape = ActiveSheet.Shapes.AddShape(iShapeCd, .Left, .Top, .Width, .Height) End With Set rRange = Nothing End Sub |
四角形以外の図形を挿入したい場合は、iShapeCdの変数に、挿入したい図形タイプを設定するだけで変更することが出来ます。
また、図形のサイズを変更したい場合は、任意のサイズを「Width」と「Height」に指定してください。
図形に文字列を入力
四角形の図形を挿入して、その図形に「Hello world」を表示するプログラムになります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | Sub 図形に文字入力() Dim iShapeCd As Integer Dim rRange As Range iShapeCd = msoShapeRectangle Set rRange = Range("C10:E12") With ActiveSheet.Shapes.AddShape(iShapeCd, rRange.Left, rRange.Top, rRange.Width, rRange.Height) .TextFrame.Characters.Text = "Hello world" End With Set rRange = Nothing End Sub |
「TextFrame.Characters.Text 」に表示したい文字列を設定するだけで表示されます。
図形の書式を変更
図形の枠線の太さと色を変更
以下は、四角形を挿入して、枠線を太くし、色を赤色にするプログラムになります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | Sub 図形の太さと色変更() Dim iShapeCd As Integer Dim rRange As Range iShapeCd = msoShapeRectangle Set rRange = Range("C10:E12") With ActiveSheet.Shapes.AddShape(iShapeCd, rRange.Left, rRange.Top, rRange.Width, rRange.Height) .Line.Weight = 2.25 .Line.ForeColor.RGB = RGB(255, 0, 0) End With Set rRange = Nothing End Sub |
枠線の太さは、「Line.Weight」に、任意のサイズを設定することで、変更することが出来ます。枠線の色は、「Line.ForeColor.RGB」に、任意の色を設定することで変更することが出来ます。
図形の背景色の変更
以下は、図形の背景色を赤色にするプログラムになります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | Sub 図形の背景色変更() Dim iShapeCd As Integer Dim rRange As Range iShapeCd = msoShapeRectangle Set rRange = Range("C10:E12") With ActiveSheet.Shapes.AddShape(iShapeCd, rRange.Left, rRange.Top, rRange.Width, rRange.Height) .Fill.ForeColor.RGB = RGB(255, 0, 0) End With Set rRange = Nothing End Sub |
背景色は、「Fill.ForeColor.RGB」に任意の色を設定するだけで、変更することが出来ます。
まとめ
VBAで図形の挿入するマクロを解説しました。
他にもVBAについて解説していますので、参考にしてみてください。
[Excelマクロ]初心者のためのVBA入門 使い方と基礎を学習ExcelのVBAを使えるようになるための基本を解説します。理解できればマクロを自作することが出来るでしょう。VBAで出来ることが全くわからない初心者でもわかりやすく解説しています。...
ABOUT ME
スポンサーリンク