【VBA】図形を挿入(作成)する方法

今回はVBAで図形を挿入する方法を紹介します。
図形を挿入する方法に加えて、色やテキストを設定する方法も紹介します。
マクロの中で図形も挿入したいという方はぜひ活用してみてください。
図形を挿入(作成)する方法
Sub ShpInsert()
'''図形(四角)を挿入する
'図形(四角)を挿入
Dim shp As Shape
Set shp = ActiveSheet.Shapes.AddShape(msoShapeRectangle, 10, 10, 150, 80)
End Sub図形の挿入はAddShapeメソッドによって行います。
AddShape (図形の種類, 左端からの位置, 上端からの位置, 幅, 高さ)
AddShapeメソッドには5つの引数があります。
1つ目の引数は図形の種類を指定するものです。サンプルコードでは四角を指定してあります。
図形の種類は本記事末尾に一覧表を記載しているので確認してみてください。(マクロの記録で確認する手もあります)
残りの4つの引数は図形の位置と大きさ(幅、高さ)を指定するためのものです。
数値をいじってみてマクロに合う位置と大きさを探してみましょう。
図形の色やテキストを設定する方法
Sub ShpColorTxt()
'''図形の色やテキストを設定する
Dim shp As Shape
Set shp = ActiveSheet.Shapes.AddShape(msoShapeRectangle, 10, 10, 150, 80)
'図形の色を設定
With shp
.Fill.ForeColor.RGB = vbWhite '塗りつぶしの色
.Line.ForeColor.RGB = vbBlack '枠線の色
End With
'図形のテキストを設定
With shp
.TextFrame2.TextRange.Text = "テキスト" '文字
.TextFrame2.TextRange.Font.Size = 11 '文字の大きさ
.TextFrame2.TextRange.Font.Fill.ForeColor.RGB = vbBlack '文字の色
.TextFrame2.TextRange.ParagraphFormat.Alignment = msoAlignCenter '中央揃え
.TextFrame2.VerticalAnchor = msoAnchorMiddle '高さ中央揃え
End With
End Sub図形の色やテキストの設定は複数のプロパティを経由するので少々複雑です。
サンプルコードにはよく使われる設定を記載したのでこれをコピペして使ってみてください。
また、色の設定(rgb)については下記記事をご覧ください。
図形の種類を指定する定数一覧
図形の種類を指定する定数を一覧表にまとめました。 (AddShapeメソッドの1つ目の引数に設定するものです)
挿入したい図形を探すのに活用してみてください。
| 名前 | 値 | 説明 |
| msoShapeMixed | -2 | 値のみを返します。その他の状態の組み合わせを示します。 |
| msoShapeRectangle | 1 | 四角形 |
| msoShapeParallelogram | 2 | 平行 四辺形 |
| msoShapeTrapezoid | 3 | 台形 |
| msoShapeDiamond | 4 | ひし形 |
| msoShapeRoundedRectangle | 5 | 角丸四角形 |
| msoShapeOctagon | 6 | オクタゴン |
| msoShapeIsoscelesTriangle | 7 | 三角形の三角形 |
| msoShapeRightTriangle | 8 | 右三角形 |
| msoShapeOval | 9 | 楕円 |
| msoShapeHexagon | 10 | 六角 形 |
| msoShapeCross | 11 | 交差 |
| msoShapeRegularPentagon | 12 | ペンタゴン |
| msoShapeCan | 13 | Cna |
| msoShapeCube | 14 | キューブ |
| msoShapeBevel | 15 | Bevel |
| msoShapeFoldedCorner | 16 | 折り曲げコーナー |
| msoShapeSmileyFace | 17 | スマイリーフェイス |
| msoShapeDonut | 18 | ドーナツ |
| msoShapeNoSymbol | 19 | “いいえ" 記号 |
| msoShapeBlockArc | 20 | 円弧をブロックする |
| msoShapeHeart | 21 | 心 |
| msoShapeLightningBolt | 22 | 稲妻 |
| msoShapeSun | 23 | 日 |
| msoShapeMoon | 24 | 月 |
| msoShapeArc | 25 | アーク |
| msoShapeDoubleBracket | 26 | 二重角かっこ |
| msoShapeDoubleBrace | 27 | 二重かっこ |
| msoShapePlaque | 28 | プラーク |
| msoShapeLeftBracket | 29 | 左角かっこ |
| msoShapeRightBracket | 30 | 右角かっこ |
| msoShapeLeftBrace | 31 | 左かっこ |
| msoShapeRightBrace | 32 | 右中かっこ |
| msoShapeRightArrow | 33 | 右を指すブロック矢印 |
| msoShapeLeftArrow | 34 | 左を指すブロック矢印 |
| msoShapeUpArrow | 35 | 上を指すブロック矢印 |
| msoShapeDownArrow | 36 | 下向きのブロック矢印 |
| msoShapeLeftRightArrow | 37 | 左右の両方を指す矢印付きのブロック矢印 |
| msoShapeUpDownArrow | 38 | 上下を指すブロック矢印 |
| msoShapeQuadArrow | 39 | 上、下、左、右を指すブロック矢印 |
| msoShapeLeftRightUpArrow | 40 | 左、右、上を指す矢印を含むブロック矢印 |
| msoShapeBentArrow | 41 | 90°の曲線に続くブロック矢印。 |
| msoShapeUTurnArrow | 42 | U 図形を形成するブロック矢印 |
| msoShapeLeftUpArrow | 43 | 左と上を指す矢印が付いたブロック矢印 |
| msoShapeBentUpArrow | 44 | 90°の鋭角線に続くブロック矢印。 既定では上向きです。 |
| msoShapeCurvedRightArrow | 45 | 右にカーブするブロック矢印 |
| msoShapeCurvedLeftArrow | 46 | 左にカーブするブロック矢印 |
| msoShapeCurvedUpArrow | 47 | 上にカーブするブロック矢印 |
| msoShapeCurvedDownArrow | 48 | 下にカーブするブロック矢印 |
| msoShapeStripedRightArrow | 49 | 末尾にストライプが付いた右を指すブロック矢印 |
| msoShapeNotchedRightArrow | 50 | 右を指すノッチ付きブロック矢印 |
| msoShapePentagon | 51 | ペンタゴン |
| msoShapeChevron | 52 | Chevron |
| msoShapeRightArrowCallout | 53 | 右を指す矢印を使用した吹き出し |
| msoShapeLeftArrowCallout | 54 | 左を指す矢印を使用した吹き出し |
| msoShapeUpArrowCallout | 55 | 上を指す矢印を使用した吹き出し |
| msoShapeDownArrowCallout | 56 | 下向きの矢印を使用した吹き出し |
| msoShapeLeftRightArrowCallout | 57 | 左と右の両方を指す矢印付きの吹き出し |
| msoShapeUpDownArrowCallout | 58 | 上下を指す矢印を使用した吹き出し |
| msoShapeQuadArrowCallout | 59 | 上、下、左、右を指す矢印を使用した吹き出し |
| msoShapeCircularArrow | 60 | 曲線 180 度の角度に続くブロック矢印 |
| msoShapeFlowchartProcess | 61 | プロセス フローチャート 記号 |
| msoShapeFlowchartAlternateProcess | 62 | 代替プロセス フローチャート 記号 |
| msoShapeFlowchartDecision | 63 | デシジョン フローチャート 記号 |
| msoShapeFlowchartData | 64 | データ フローチャート 記号 |
| msoShapeFlowchartPredefinedProcess | 65 | 定義済みのプロセス フローチャート 記号 |
| msoShapeFlowchartInternalStorage | 66 | 内部ストレージ フローチャート 記号 |
| msoShapeFlowchartDocument | 67 | ドキュメント フローチャート 記号 |
| msoShapeFlowchartMultidocument | 68 | 複数文書フローチャート記号 |
| msoShapeFlowchartTerminator | 69 | ターミネータ フローチャート 記号 |
| msoShapeFlowchartPreparation | 70 | 準備フローチャート記号 |
| msoShapeFlowchartManualInput | 71 | 手動入力フローチャート記号 |
| msoShapeFlowchartManualOperation | 72 | 手動操作フローチャート記号 |
| msoShapeFlowchartConnector | 73 | コネクタ フローチャート 記号 |
| msoShapeFlowchartOffpageConnector | 74 | オフページ コネクタ フローチャート 記号 |
| msoShapeFlowchartCard | 75 | カードフローチャート記号 |
| msoShapeFlowchartPunchedTape | 76 | パンチテープフローチャート記号 |
| msoShapeFlowchartSummingJunction | 77 | 加算ジャンクション フローチャート 記号 |
| msoShapeFlowchartOr | 78 | “Or" フローチャート 記号 |
| msoShapeFlowchartCollate | 79 | フローチャート記号を照合する |
| msoShapeFlowchartSort | 80 | 並べ替えフローチャート記号 |
| msoShapeFlowchartExtract | 81 | フローチャート記号の抽出 |
| msoShapeFlowchartMerge | 82 | 差し込みフローチャート記号 |
| msoShapeFlowchartStoredData | 83 | 格納されたデータ フローチャート 記号 |
| msoShapeFlowchartDelay | 84 | 遅延フローチャート記号 |
| msoShapeFlowchartSequentialAccessStorage | 85 | 順次アクセス・ストレージフローチャート記号 |
| msoShapeFlowchartMagneticDisk | 86 | 磁気ディスクフローチャート記号 |
| msoShapeFlowchartDirectAccessStorage | 87 | 直接アクセスストレージフローチャート記号 |
| msoShapeFlowchartDisplay | 88 | フローチャート記号を表示する |
| msoShapeExplosion1 | 89 | Explosion |
| msoShapeExplosion2 | 90 | Explosion |
| msoShape4pointStar | 91 | 4 点星 |
| msoShape5pointStar | 92 | 5 点星 |
| msoShape8pointStar | 93 | 8 点星 |
| msoShape16pointStar | 94 | 16 ポイントの星 |
| msoShape24pointStar | 95 | 24 ポイントの星 |
| msoShape32pointStar | 96 | 32 ポイントの星 |
| msoShapeUpRibbon | 97 | リボンの端の上に中央の領域があるリボン バナー |
| msoShapeDownRibbon | 98 | リボンの端の下に中央の領域があるリボン バナー |
| msoShapeCurvedUpRibbon | 99 | 上にカーブするリボン バナー |
| msoShapeCurvedDownRibbon | 100 | 下にカーブするリボン バナー |
| msoShapeVerticalScroll | 101 | 垂直スクロール |
| msoShapeHorizontalScroll | 102 | 水平スクロール |
| msoShapeWave | 103 | 小波 |
| msoShapeDoubleWave | 104 | ダブルウェーブ |
| msoShapeRectangularCallout | 105 | 長方形吹き出し |
| msoShapeRoundedRectangularCallout | 106 | 四角形の丸みを帯びた吹き出し |
| msoShapeOvalCallout | 107 | 楕円型吹き出し |
| msoShapeCloudCallout | 108 | クラウド吹き出し |
| msoShapeLineCallout1 | 109 | 罫線と水平吹き出し線を使用した吹き出し |
| msoShapeLineCallout2 | 110 | 斜めの直線を使用した吹き出し |
| msoShapeLineCallout3 | 111 | 斜線を使用した吹き出し |
| msoShapeLineCallout4 | 112 | U 図形を形成する吹き出し線セグメントを含む吹き出し |
| msoShapeLineCallout1AccentBar | 113 | 水平アクセント バーを使用した吹き出し |
| msoShapeLineCallout2AccentBar | 114 | 斜め吹き出し線とアクセント バーを使用した吹き出し |
| msoShapeLineCallout3AccentBar | 115 | 角度付き吹き出し線とアクセント バーを使用した吹き出し |
| msoShapeLineCallout4AccentBar | 116 | U 図形を形成するアクセント バーと吹き出し線セグメントを含む吹き出し |
| msoShapeLineCallout1NoBorder | 117 | 水平線を使用した吹き出し |
| msoShapeLineCallout2NoBorder | 118 | 罫線のない吹き出し線と対角線付き吹き出し線 |
| msoShapeLineCallout3NoBorder | 119 | 罫線と角度付き吹き出し線のない吹き出し |
| msoShapeLineCallout4NoBorder | 120 | U 図形を形成する罫線セグメントと吹き出し線セグメントのない吹き出し |
| msoShapeLineCallout1BorderandAccentBar | 121 | 罫線と水平方向のアクセント バーを使用した吹き出し |
| msoShapeLineCallout2BorderandAccentBar | 122 | 罫線、対角線、アクセント バーを使用した吹き出し |
| msoShapeLineCallout3BorderandAccentBar | 123 | 罫線、角度付き吹き出し線、アクセント バーを含む吹き出し |
| msoShapeLineCallout4BorderandAccentBar | 124 | U 図形を形成する罫線、アクセント バー、吹き出し線セグメントを含む吹き出し |
| msoShapeActionButtonCustom | 125 | 既定の画像またはテキストのないボタン。 マウスクリックおよびマウスオーバー動作をサポートします。 |
| msoShapeActionButtonHome | 126 | [ホーム] ボタン。 マウスクリックおよびマウスオーバー動作をサポートします。 |
| msoShapeActionButtonHelp | 127 | [ヘルプ] ボタン。 マウスクリックおよびマウスオーバー動作をサポートします。 |
| msoShapeActionButtonInformation | 128 | [情報] ボタン。 マウスクリックおよびマウスオーバー動作をサポートします。 |
| msoShapeActionButtonBackorPrevious | 129 | [戻る] または [前へ] ボタン。 マウスクリックおよびマウスオーバー動作をサポートします。 |
| msoShapeActionButtonForwardorNext | 130 | [進む] または [次へ] ボタン。 マウスクリックおよびマウスオーバー動作をサポートします。 |
| msoShapeActionButtonBeginning | 131 | [上旬] ボタン。 マウスクリックおよびマウスオーバー動作をサポートします。 |
| msoShapeActionButtonEnd | 132 | [終了] ボタン。 マウスクリックおよびマウスオーバー動作をサポートします。 |
| msoShapeActionButtonReturn | 133 | [戻る] ボタン。 マウスクリックおよびマウスオーバー動作をサポートします。 |
| msoShapeActionButtonDocument | 134 | [文書] ボタン。 マウスクリックおよびマウスオーバー動作をサポートします。 |
| msoShapeActionButtonSound | 135 | [サウンド] ボタン。 マウスクリックおよびマウスオーバー動作をサポートします。 |
| msoShapeActionButtonMovie | 136 | [ビデオ] ボタン。 マウスクリックおよびマウスオーバー動作をサポートします。 |
| msoShapeBalloon | 137 | 風船 |
| msoShapeNotPrimitive | 138 | 非サポート |
| msoShapeFlowchartOfflineStorage | 139 | オフライン ストレージ フローチャート 記号 |
| msoShapeLeftRightRibbon | 140 | 両端に矢印が付いたリボン |
| msoShapeDiagonalStripe | 141 | 2 つの三角形の図形が削除された四角形。対角線 |
| msoShapePie | 142 | 一部が欠落している円 ('pie’) |
| msoShapeNonIsoscelesTrapezoid | 143 | 非対称非平行辺を持つ台形 |
| msoShapeDecagon | 144 | デカゴン |
| msoShapeHeptagon | 145 | Heptagon |
| msoShapeDodecagon | 146 | 12 角形。 |
| msoShape6pointStar | 147 | 6 点星 |
| msoShape7pointStar | 148 | 7 点星 |
| msoShape10pointStar | 149 | 10 ポイントの星 |
| msoShape12pointStar | 150 | 12 ポイントの星 |
| msoShapeRound1Rectangle | 151 | 角を丸めた四角形 |
| msoShapeRound2SameRectangle | 152 | 辺を共有する角が 2 角の四角形 |
| msoShapeSnipRoundRectangle | 154 | 1 つの角が切り取られ、角が丸い四角形 |
| msoShapeSnip1Rectangle | 155 | 1 つの角が切り取られた四角形 |
| msoShapeSnip2SameRectangle | 156 | 辺を共有する 2 つの角が切り取られた四角形 |
| msoShapeRound2DiagRectangle | 157 | 2 つの角を丸めた四角形(対角線付き) |
| msoShapeSnip2DiagRectangle | 157 | 斜め対向する 2 つの角を持つ四角形 |
| msoShapeFrame | 158 | 長方形の額縁 |
| msoShapeHalfFrame | 159 | 長方形の額縁の半分 |
| msoShapeTear | 160 | 水滴 |
| msoShapeChord | 161 | 円の内側を通って境界上の 2 つのポイントを結ぶ線を持つ円。和音を持つ円 |
| msoShapeCorner | 162 | 四角形の欠落部分がある四角形。 |
| msoShapeMathPlus | 163 | 加算記号+ |
| msoShapeMathMinus | 164 | 減算記号- |
| msoShapeMathMultiply | 165 | 乗算記号x |
| msoShapeMathDivide | 166 | 除算記号÷ |
| msoShapeMathEqual | 167 | 等価記号= |
| msoShapeMathNotEqual | 168 | 非等価記号≠ |
| msoShapeCornerTabs | 169 | 四角形の形に沿って配置された 4 つの直角三角形。4 つの切り取られた角部分。 |
| msoShapeSquareTabs | 170 | 四角形の図形を定義する 4 つの小さな四角形 |
| msoShapePlaqueTabs | 171 | 四角形の図形を定義する 4 つの四分円 |
| msoShapeGear6 | 172 | 6本の歯を持つギア |
| msoShapeGear9 | 173 | 歯が 9 個ある歯車。 |
| msoShapeFunnel | 174 | 漏斗 |
| msoShapePieWedge | 175 | 円形図形の 4 分の 1 |
| msoShapeLeftCircularArrow | 176 | 反時計回りを指す円形の矢印 |
| msoShapeLeftRightCircularArrow | 177 | 時計回りと反時計回りを指す円形の矢印。両端にポイントがある曲線矢印 |
| msoShapeSwooshArrow | 178 | 曲線矢印 |
| msoShapeCloud | 179 | クラウドシェイプ |
| msoShapeChartX | 180 | 対角線に沿って 4 つの部分に分割された正方形 |
| msoShapeChartStar | 181 | 垂直線と対角線に沿って 6 つの部分に分割された正方形 |
| msoShapeChartPlus | 182 | 四角形を垂直方向と水平方向に 4 四分の 4 に分割 |
| msoShapeLineInverse | 183 | 線の逆数 |

https://yaromai.jp/vba-cell-color/