シートに利用している図(オートシェイプ、画像など)の一覧を出力する。
シート内で利用しているオートシェイプ、線、画像、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■実行結果




