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

【VBA】図形(Shape)の種類を判定する方法(Typeプロパティ)

【VBA】図形(Shape)の種類を判定する方法(Typeプロパティ)

Excelシートの図形(Shape)を処理していると、たまに図形の種類を気にすることがあります。

例えば、シート上の全図形に対して処理したいけど画像だけ除外したいなど。

図形の種類の確認はTypeプロパティを使って行います。

今回はこのTypeプロパティの使い方と図形の種類について解説します。

VBAが難しいと感じたら
プロにお任せして代わりに作ってもらうのはいかがでしょうか?
マクロの作成請負をしていますので、こちらからご相談ください。

図形(Shape)の種類を判定する方法(Typeプロパティ)

Sub Sample()
    '''画像以外の図形を左端に集める

    Dim shp As Shape
    For Each shp In ActiveSheet.Shapes

        ''画像以外の図形を判定
        If shp.Type <> msoPicture Then
            shp.Left = 1
            shp.Top = 1
        End If
    Next
End Sub

このサンプルコードは図形(Shape)の種類を判定して、画像以外の図形の位置を動かすものです。

        ''画像以外の図形を判定
        If shp.Type <> msoPicture Then

ポイントはこの部分で、shp.Typeが画像でないときのみ処理を進めています。

このようにshp.Typeを確認することで、図形の種類に応じた処理分岐ができます。

よく使う図形の種類

図形の種類定数
図形・オートシェイプmsoAutoShape1
グラフmsoChart3
フリーフォームmsoFreeform5
グループ化された図形msoGroup6
msoLine9
リンク画像msoLinkedPicture11
画像msoPicture13
テキストボックスmsoTextBox17
msoTable19
図表msoDiagram21
よく使う図形の種類

よく使う図形の種類にはこのようなものがあります。

図形の種類を確認したいときに活用してみてください。

また、図形の種類一覧もこの後にまとめて記載します。
(ここにない種類を確認したい際に使ってください)

図形の種類一覧

図形の種類定数
msoShapeTypeMixed-2
図形・オートシェイプmsoAutoShape1
吹き出しmsoCallout2
グラフmsoChart3
コメントmsoComment4
フリーフォームmsoFreeform5
グループ化された図形msoGroup6
埋め込みOLEオブジェクトmsoEmbeddedOLEObject7
フォームコントロールmsoFormControl8
msoLine9
リンクOLEオブジェクトmsoLinkedOLEObject10
リンク画像msoLinkedPicture11
ActiveXコントロールmsoOLEControlObject12
画像msoPicture13
プレースホルダーmsoPlaceholder14
テキスト効果msoTextEffect15
メディアmsoMedia16
テキストボックスmsoTextBox17
スクリプトアンカーmsoScriptAnchor18
msoTable19
描画キャンバスmsoCanvas20
図表msoDiagram21
インクmsoInk22
インクコメントmsoInkComment23
スマートアートmsoSmartArt24
スライサーmsoSlicer25
WebビデオmsoWebVideo26
コンテンツアドインmsoContentApp27
グラフィックmsoGraphic28
リンクグラフィックmsoLinkedGraphic29
3Dモデルmso3DModel30
リンク3DモデルmsoLinked3DModel31
図形の種類一覧

VBAが難しいと感じたら
プロにお任せして代わりに作ってもらうのはいかがでしょうか?
マクロの作成請負をしていますので、こちらからご相談ください。

VBA

Posted by やろまい