【Excel-VBA】画像のみ選択して(削除)

Function imgdel() ‘画像のみ一括選択する
Dim chkBox As Excel.CheckBox
Dim objShape As Object
Dim arr() As String
ReDim Preserve arr(0)
Dim sh01 As Worksheet
Set sh01 = Worksheets(“キーワード一覧”)

'選択シートに存在するオブジェクトを取得します。
For Each objShape In sh01.Shapes

    arr(UBound(arr)) = objShape.Name

    'オブジェクトのタイプが画像であるか判定します。
    If objShape.Type = 11 Then ’リンク画像 11

        '画像オブジェクトの名前を配列に追加します。
        arr(UBound(arr)) = objShape.Name

        '値を保持したまま配列を最大インデックスを追加します。
        ReDim Preserve arr(UBound(arr) + 1)

    End If

Next

'空の値を削除します。
If UBound(arr) > 0 Then
ReDim Preserve arr(UBound(arr) - 1)

'画像オブジェクトを選択します。
sh01.Shapes.Range(arr).Select

'選択オブジェクトを削除します。
Selection.Delete
End If

End Function

選択する種別を変更

msoAutoShape 図形/オートシェイプ 1
msoCallout 吹き出し 2
msoChart グラフ 3
msoComment コメント 4
msoGroup グループ化された図形 6
msoLinkedPicture リンク画像 11
msoPicture 画像 13
msoTextBox テキストボックス 17
msoTable 表 19

コメントを残す

メールアドレスが公開されることはありません。