Excel VBA(マクロ)で図形の枠線を点線にする方法と種類/DashStyleプロパティの使い方

sports IT

図形の線に対しDashStyleを指定することで、図形の線の種類を任意の点線に変更することができます。

スポンサーリンク

図形に点線を設定する方法

枠線の種類を指定
Shapeオブジェクト(またはShapeRangeコレクション).Line.DashStyle = 種類
Line DashStyle vba 1
枠線を太くした図形をいくらか用意しました。
' vba
ActiveSheet.Shapes(1).Line.DashStyle = 2
Shapeオブジェクトを取得し、Line.DashStyleを2に指定してみます。
Line DashStyle vba 2
インデックス番号1の図形の枠線が点線(角)に設定されました。
' vba
ActiveSheet.Shapes(1).Line.DashStyle = msoLineSquareDot
図形の点線の種類はMsoLineDashStyle列挙型定数でも指定することができます。
点線(角)は定数で言うとmsoLineSquareDotとなり、このコードも同じ結果になります。
Line DashStyle vba 3
番号1から順番に設定してみた結果がこちら。公式では8までしか言及されていませんが、試してみたら12まで線の種類が指定できました。
見た感じ10は7と同じ、11は8と同じ線と思われます。
9は密度の高い一点鎖線で、12は密度の低い二点鎖線でしょうか。
Line DashStyle vba 4
それぞれ対応する定数はこうなります。
Line DashStyle vba 5
線の太さを通常のものにした場合の見え方です。
' vba

'実線
ActiveSheet.Shapes(1).Line.DashStyle = 1
ActiveSheet.Shapes(1).TextFrame.Characters.Text = "1(msoLineSolid)"

'点線 (角)
ActiveSheet.Shapes(2).Line.DashStyle = 2
ActiveSheet.Shapes(2).TextFrame.Characters.Text = "2(msoLineSquareDot)"

'点線 (丸)
ActiveSheet.Shapes(3).Line.DashStyle = 3
ActiveSheet.Shapes(3).TextFrame.Characters.Text = "3(msoLineRoundDot)"

'破線
ActiveSheet.Shapes(4).Line.DashStyle = 4
ActiveSheet.Shapes(4).TextFrame.Characters.Text = "4(msoLineDash)"

'一点鎖線
ActiveSheet.Shapes(5).Line.DashStyle = 5
ActiveSheet.Shapes(5).TextFrame.Characters.Text = "5(msoLineDashDot)"

'二点鎖線
ActiveSheet.Shapes(6).Line.DashStyle = 6
ActiveSheet.Shapes(6).TextFrame.Characters.Text = "6(msoLineDashDotDot)"

'長破線
ActiveSheet.Shapes(7).Line.DashStyle = 7
ActiveSheet.Shapes(7).TextFrame.Characters.Text = "7(msoLineLongDash)"

'長鎖線パターン
ActiveSheet.Shapes(8).Line.DashStyle = 8
ActiveSheet.Shapes(8).TextFrame.Characters.Text = "8(msoLineLongDashDot)"

'以下定数名不明
ActiveSheet.Shapes(9).Line.DashStyle = 9
ActiveSheet.Shapes(9).TextFrame.Characters.Text = "9"
ActiveSheet.Shapes(9).Line.DashStyle = 10
ActiveSheet.Shapes(10).TextFrame.Characters.Text = "10"
ActiveSheet.Shapes(9).Line.DashStyle = 11
ActiveSheet.Shapes(11).TextFrame.Characters.Text = "11"
ActiveSheet.Shapes(9).Line.DashStyle = 12
ActiveSheet.Shapes(12).TextFrame.Characters.Text = "12"
Excel(エクセル):図形
Excelでは、図形という機能を使うことで四角形や丸、矢印などのオブジェクトをシート状に配置することができます。セルの形状を無視して配置できるので、フローチャートや装飾、注釈などアイデア次第でさまざまな用途に利用できます。 図形作成・操作...
関数・演算子・メソッド・プロパティ名から探すExcel/VBA(マクロ)使い方・組み合わせ方まとめ
こちらはExcelやメソッドの諸機能を、機能の名称から探せるまとめ記事です。
やりたいことから方法を探すエクセル(Excel)操作・関数・VBA(マクロ)逆引きまとめ
逆引き(やりたいことから探す)Excel記事まとめ

コメント