利用しているオートシェイプ、画像などの一覧を出力

シートに利用している図(オートシェイプ、画像など)の一覧を出力する。

シート内で利用しているオートシェイプ、線、画像、SmartArtなどの図の情報を一覧で出力します。
図の情報はSheetオブジェクト内のShapesプロパティを利用することで一覧出力に必要な情報を取得することができます。

このサンプルコードでは図に割り振られた名前とその種類を一覧で取得しています。
図の種類判定にはMsoShapeTypeクラスの定数を元に種類を判定しています。

'******************************************************************
' 図オブジェクト一覧の出力
'  ※図形種類はMsoShapeTypeクラスの定数を元に判断しています。
'******************************************************************
Sub Main_ShapeList()
Dim sObj As Shape    'オブジェクト
    
    '.Shapesオブジェクトを順次処理
    For Each sObj In Sheets("Sheet1").Shapes
        Debug.Print "-----------------------------------------"
        Debug.Print "名前:" & sObj.Name
        Debug.Print "種類:" & getShapeType(sObj.Type)
    Next
    
End Sub

'******************************************************************
' MsoShapeTypeクラスの定数を元に種類を判定
'------------------------------------------------------------------
'  第1引数:オブジェクトのタイプ(数値)
'------------------------------------------------------------------
'  戻り値 :オブジェクトの種類(文字列)
'******************************************************************
Function getShapeType(getVal As Integer) As String
Dim sShapeType As String

    Select Case getVal
    Case 1
        sShapeType = "AutoShape(msoAutoShape)"
    Case 2
        sShapeType = "吹き出し(msoCallout)"
    Case 3
        sShapeType = "グラフ(msoChart)"
    Case 4
        sShapeType = "コンポーネント(msoComment)"
    Case 5
        sShapeType = "フリーフォーム(msoFreeform)"
    Case 6
        sShapeType = "Group(msoGroup)"
    Case 7
        sShapeType = "埋め込み OLE オブジェクト(msoEmbeddedOLEObject)"
    Case 8
        sShapeType = "フォーム コントロール(msoFormControl)"
    Case 9
        sShapeType = "直線(msoLine)"
    Case 10
        sShapeType = "リンク OLE オブジェクト(msoLinkedOLEObject)"
    Case 11
        sShapeType = "リンク画像(msoLinkedPicture)"
    Case 12
        sShapeType = "OLE コントロール オブジェクト(msoOLEControlObject)"
    Case 13
        sShapeType = "画像(msoPicture)"
    Case 14
        sShapeType = "プレースホルダー(msoPlaceholder)"
    Case 15
        sShapeType = "テキスト効果(msoTextEffect)"
    Case 16
        sShapeType = "メディア(msoMedia)"
    Case 17
        sShapeType = "テキスト ボックス(msoTextBox)"
    Case 18
        sShapeType = "スクリプト アンカー(msoScriptAnchor)"
    Case 19
        sShapeType = "テーブル(msoTable)"
    Case 20
        sShapeType = "Canvas(msoCanvas)"
    Case 21
        sShapeType = "ダイアグラム(msoDiagram)"
    Case 22
        sShapeType = "インク(msoInk)"
    Case 23
        sShapeType = "インク コメント(msoInkComment)"
    Case 24
        sShapeType = "SmartArt グラフィック(msoIgxGraphic)"
    Case 25
        sShapeType = "Slicer(msoSlicer)"
    Case 26
        sShapeType = "Web ビデオ(msoWebVideo)"
    Case 27
        sShapeType = "コンテンツ Office アドイン(msoContentApp)"
    Case 28
        sShapeType = "グラフィック(msoGraphic)"
    Case 29
        sShapeType = "リンクされたグラフィック(msoLinkedGraphic)"
    Case 30
        sShapeType = "3D モデル(mso3DModel)"
    Case 31
        sShapeType = "リンクされた 3D モデル(msoLinked3DModel)"
    Case -2
        sShapeType = "図形の種類の組み合わせ(msoShapeTypeMixed)"
    End Select
    
    If sShapeType <> "" Then
        getShapeType = sShapeType
    Else
        getShapeType = "Error/種類が特定できませんでした"
    End If
    
End Function

 ■実行結果

利用している図(オートシェイプ、SmartArtなど)