このサイトの記事内では「アフィリエイト広告」などの広告を掲載している場合があります。
消費者庁が問題としている「誇大な宣伝や表現」とならないよう配慮しコンテンツを制作しておりますのでご安心ください。
問題のある表現が見つかりましたらお問い合わせよりご一報いただけますと幸いです。

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

2024年11月17日

図形を挿入(作成)にはAddShapeメソッド

今回はVBAで図形を挿入する方法を紹介します。

図形を挿入する方法に加えて、色やテキストを設定する方法も紹介します。

マクロの中で図形も挿入したいという方はぜひ活用してみてください。

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値のみを返します。その他の状態の組み合わせを示します。
msoShapeRectangle1四角形
msoShapeParallelogram2平行 四辺形
msoShapeTrapezoid3台形
msoShapeDiamond4ひし形
msoShapeRoundedRectangle5角丸四角形
msoShapeOctagon6オクタゴン
msoShapeIsoscelesTriangle7三角形の三角形
msoShapeRightTriangle8右三角形
msoShapeOval9楕円
msoShapeHexagon10六角 形
msoShapeCross11交差
msoShapeRegularPentagon12ペンタゴン
msoShapeCan13Cna
msoShapeCube14キューブ
msoShapeBevel15Bevel
msoShapeFoldedCorner16折り曲げコーナー
msoShapeSmileyFace17スマイリーフェイス
msoShapeDonut18ドーナツ
msoShapeNoSymbol19“いいえ" 記号
msoShapeBlockArc20円弧をブロックする
msoShapeHeart21
msoShapeLightningBolt22稲妻
msoShapeSun23
msoShapeMoon24
msoShapeArc25アーク
msoShapeDoubleBracket26二重角かっこ
msoShapeDoubleBrace27二重かっこ
msoShapePlaque28プラーク
msoShapeLeftBracket29左角かっこ
msoShapeRightBracket30右角かっこ
msoShapeLeftBrace31左かっこ
msoShapeRightBrace32右中かっこ
msoShapeRightArrow33右を指すブロック矢印
msoShapeLeftArrow34左を指すブロック矢印
msoShapeUpArrow35上を指すブロック矢印
msoShapeDownArrow36下向きのブロック矢印
msoShapeLeftRightArrow37左右の両方を指す矢印付きのブロック矢印
msoShapeUpDownArrow38上下を指すブロック矢印
msoShapeQuadArrow39上、下、左、右を指すブロック矢印
msoShapeLeftRightUpArrow40左、右、上を指す矢印を含むブロック矢印
msoShapeBentArrow4190°の曲線に続くブロック矢印。
msoShapeUTurnArrow42U 図形を形成するブロック矢印
msoShapeLeftUpArrow43左と上を指す矢印が付いたブロック矢印
msoShapeBentUpArrow4490°の鋭角線に続くブロック矢印。 既定では上向きです。
msoShapeCurvedRightArrow45右にカーブするブロック矢印
msoShapeCurvedLeftArrow46左にカーブするブロック矢印
msoShapeCurvedUpArrow47上にカーブするブロック矢印
msoShapeCurvedDownArrow48下にカーブするブロック矢印
msoShapeStripedRightArrow49末尾にストライプが付いた右を指すブロック矢印
msoShapeNotchedRightArrow50右を指すノッチ付きブロック矢印
msoShapePentagon51ペンタゴン
msoShapeChevron52Chevron
msoShapeRightArrowCallout53右を指す矢印を使用した吹き出し
msoShapeLeftArrowCallout54左を指す矢印を使用した吹き出し
msoShapeUpArrowCallout55上を指す矢印を使用した吹き出し
msoShapeDownArrowCallout56下向きの矢印を使用した吹き出し
msoShapeLeftRightArrowCallout57左と右の両方を指す矢印付きの吹き出し
msoShapeUpDownArrowCallout58上下を指す矢印を使用した吹き出し
msoShapeQuadArrowCallout59上、下、左、右を指す矢印を使用した吹き出し
msoShapeCircularArrow60曲線 180 度の角度に続くブロック矢印
msoShapeFlowchartProcess61プロセス フローチャート 記号
msoShapeFlowchartAlternateProcess62代替プロセス フローチャート 記号
msoShapeFlowchartDecision63デシジョン フローチャート 記号
msoShapeFlowchartData64データ フローチャート 記号
msoShapeFlowchartPredefinedProcess65定義済みのプロセス フローチャート 記号
msoShapeFlowchartInternalStorage66内部ストレージ フローチャート 記号
msoShapeFlowchartDocument67ドキュメント フローチャート 記号
msoShapeFlowchartMultidocument68複数文書フローチャート記号
msoShapeFlowchartTerminator69ターミネータ フローチャート 記号
msoShapeFlowchartPreparation70準備フローチャート記号
msoShapeFlowchartManualInput71手動入力フローチャート記号
msoShapeFlowchartManualOperation72手動操作フローチャート記号
msoShapeFlowchartConnector73コネクタ フローチャート 記号
msoShapeFlowchartOffpageConnector74オフページ コネクタ フローチャート 記号
msoShapeFlowchartCard75カードフローチャート記号
msoShapeFlowchartPunchedTape76パンチテープフローチャート記号
msoShapeFlowchartSummingJunction77加算ジャンクション フローチャート 記号
msoShapeFlowchartOr78“Or" フローチャート 記号
msoShapeFlowchartCollate79フローチャート記号を照合する
msoShapeFlowchartSort80並べ替えフローチャート記号
msoShapeFlowchartExtract81フローチャート記号の抽出
msoShapeFlowchartMerge82差し込みフローチャート記号
msoShapeFlowchartStoredData83格納されたデータ フローチャート 記号
msoShapeFlowchartDelay84遅延フローチャート記号
msoShapeFlowchartSequentialAccessStorage85順次アクセス・ストレージフローチャート記号
msoShapeFlowchartMagneticDisk86磁気ディスクフローチャート記号
msoShapeFlowchartDirectAccessStorage87直接アクセスストレージフローチャート記号
msoShapeFlowchartDisplay88フローチャート記号を表示する
msoShapeExplosion189Explosion
msoShapeExplosion290Explosion
msoShape4pointStar914 点星
msoShape5pointStar925 点星
msoShape8pointStar938 点星
msoShape16pointStar9416 ポイントの星
msoShape24pointStar9524 ポイントの星
msoShape32pointStar9632 ポイントの星
msoShapeUpRibbon97リボンの端の上に中央の領域があるリボン バナー
msoShapeDownRibbon98リボンの端の下に中央の領域があるリボン バナー
msoShapeCurvedUpRibbon99上にカーブするリボン バナー
msoShapeCurvedDownRibbon100下にカーブするリボン バナー
msoShapeVerticalScroll101垂直スクロール
msoShapeHorizontalScroll102水平スクロール
msoShapeWave103小波
msoShapeDoubleWave104ダブルウェーブ
msoShapeRectangularCallout105長方形吹き出し
msoShapeRoundedRectangularCallout106四角形の丸みを帯びた吹き出し
msoShapeOvalCallout107楕円型吹き出し
msoShapeCloudCallout108クラウド吹き出し
msoShapeLineCallout1109罫線と水平吹き出し線を使用した吹き出し
msoShapeLineCallout2110斜めの直線を使用した吹き出し
msoShapeLineCallout3111斜線を使用した吹き出し
msoShapeLineCallout4112U 図形を形成する吹き出し線セグメントを含む吹き出し
msoShapeLineCallout1AccentBar113水平アクセント バーを使用した吹き出し
msoShapeLineCallout2AccentBar114斜め吹き出し線とアクセント バーを使用した吹き出し
msoShapeLineCallout3AccentBar115角度付き吹き出し線とアクセント バーを使用した吹き出し
msoShapeLineCallout4AccentBar116U 図形を形成するアクセント バーと吹き出し線セグメントを含む吹き出し
msoShapeLineCallout1NoBorder117水平線を使用した吹き出し
msoShapeLineCallout2NoBorder118罫線のない吹き出し線と対角線付き吹き出し線
msoShapeLineCallout3NoBorder119罫線と角度付き吹き出し線のない吹き出し
msoShapeLineCallout4NoBorder120U 図形を形成する罫線セグメントと吹き出し線セグメントのない吹き出し
msoShapeLineCallout1BorderandAccentBar121罫線と水平方向のアクセント バーを使用した吹き出し
msoShapeLineCallout2BorderandAccentBar122罫線、対角線、アクセント バーを使用した吹き出し
msoShapeLineCallout3BorderandAccentBar123罫線、角度付き吹き出し線、アクセント バーを含む吹き出し
msoShapeLineCallout4BorderandAccentBar124U 図形を形成する罫線、アクセント バー、吹き出し線セグメントを含む吹き出し
msoShapeActionButtonCustom125既定の画像またはテキストのないボタン。 マウスクリックおよびマウスオーバー動作をサポートします。
msoShapeActionButtonHome126[ホーム] ボタン。 マウスクリックおよびマウスオーバー動作をサポートします。
msoShapeActionButtonHelp127[ヘルプ] ボタン。 マウスクリックおよびマウスオーバー動作をサポートします。
msoShapeActionButtonInformation128[情報] ボタン。 マウスクリックおよびマウスオーバー動作をサポートします。
msoShapeActionButtonBackorPrevious129[戻る] または [前へ] ボタン。 マウスクリックおよびマウスオーバー動作をサポートします。
msoShapeActionButtonForwardorNext130[進む] または [次へ] ボタン。 マウスクリックおよびマウスオーバー動作をサポートします。
msoShapeActionButtonBeginning131[上旬] ボタン。 マウスクリックおよびマウスオーバー動作をサポートします。
msoShapeActionButtonEnd132[終了] ボタン。 マウスクリックおよびマウスオーバー動作をサポートします。
msoShapeActionButtonReturn133[戻る] ボタン。 マウスクリックおよびマウスオーバー動作をサポートします。
msoShapeActionButtonDocument134[文書] ボタン。 マウスクリックおよびマウスオーバー動作をサポートします。
msoShapeActionButtonSound135[サウンド] ボタン。 マウスクリックおよびマウスオーバー動作をサポートします。
msoShapeActionButtonMovie136[ビデオ] ボタン。 マウスクリックおよびマウスオーバー動作をサポートします。
msoShapeBalloon137風船
msoShapeNotPrimitive138非サポート
msoShapeFlowchartOfflineStorage139オフライン ストレージ フローチャート 記号
msoShapeLeftRightRibbon140両端に矢印が付いたリボン
msoShapeDiagonalStripe1412 つの三角形の図形が削除された四角形。対角線
msoShapePie142一部が欠落している円 ('pie’)
msoShapeNonIsoscelesTrapezoid143非対称非平行辺を持つ台形
msoShapeDecagon144デカゴン
msoShapeHeptagon145Heptagon
msoShapeDodecagon14612 角形。
msoShape6pointStar1476 点星
msoShape7pointStar1487 点星
msoShape10pointStar14910 ポイントの星
msoShape12pointStar15012 ポイントの星
msoShapeRound1Rectangle151角を丸めた四角形
msoShapeRound2SameRectangle152辺を共有する角が 2 角の四角形
msoShapeSnipRoundRectangle1541 つの角が切り取られ、角が丸い四角形
msoShapeSnip1Rectangle1551 つの角が切り取られた四角形
msoShapeSnip2SameRectangle156辺を共有する 2 つの角が切り取られた四角形
msoShapeRound2DiagRectangle1572 つの角を丸めた四角形(対角線付き)
msoShapeSnip2DiagRectangle157斜め対向する 2 つの角を持つ四角形
msoShapeFrame158長方形の額縁
msoShapeHalfFrame159長方形の額縁の半分
msoShapeTear160水滴
msoShapeChord161円の内側を通って境界上の 2 つのポイントを結ぶ線を持つ円。和音を持つ円
msoShapeCorner162四角形の欠落部分がある四角形。
msoShapeMathPlus163加算記号+
msoShapeMathMinus164減算記号-
msoShapeMathMultiply165乗算記号x
msoShapeMathDivide166除算記号÷
msoShapeMathEqual167等価記号=
msoShapeMathNotEqual168非等価記号≠
msoShapeCornerTabs169四角形の形に沿って配置された 4 つの直角三角形。4 つの切り取られた角部分。
msoShapeSquareTabs170四角形の図形を定義する 4 つの小さな四角形
msoShapePlaqueTabs171四角形の図形を定義する 4 つの四分円
msoShapeGear61726本の歯を持つギア
msoShapeGear9173歯が 9 個ある歯車。
msoShapeFunnel174漏斗
msoShapePieWedge175円形図形の 4 分の 1
msoShapeLeftCircularArrow176反時計回りを指す円形の矢印
msoShapeLeftRightCircularArrow177時計回りと反時計回りを指す円形の矢印。両端にポイントがある曲線矢印
msoShapeSwooshArrow178曲線矢印
msoShapeCloud179クラウドシェイプ
msoShapeChartX180対角線に沿って 4 つの部分に分割された正方形
msoShapeChartStar181垂直線と対角線に沿って 6 つの部分に分割された正方形
msoShapeChartPlus182四角形を垂直方向と水平方向に 4 四分の 4 に分割
msoShapeLineInverse183線の逆数
図形の種類を指定する定数一覧

《VBA上級者になりたい人へ》
VBA上級者を目指したい人にはパーフェクトExcel VBA一択です。
この本を読み切れば間違いなくVBA上級者になれます。

created by Rinker
技術評論社
¥3,608 (2024/12/02 20:25:22時点 Amazon調べ-詳細)
VBAが難しいと感じたら
ココナラにてVBAの作成依頼を受け付けています。
ご依頼・ご相談はこちらから

VBA

Posted by やろまい