VBA(Microsoft Excel)でワークシートの画像を削除する
ロブは、ワークシートから写真を削除していた問題について書いています。彼は画像(署名)を図形として追加するマクロを持っていますが、後で画像を削除しようとすると、Shapesコレクションでそれを見つけることができません。
チェックアウトすることがいくつかあります。まず、削除を行うために適切な構文を使用していることを確認する必要があります。コードにシートオブジェクトが明示的に含まれていることを確認してください。
たとえば、次の行は機能しません:
Shapes(1).Delete
代わりに、次の行のいずれかに類似したコードを使用して、シートを指定する必要があります。
ActiveSheet.Shapes(1).Delete Sheets("Sheet1").Shapes(1).Delete Sheets(1).Shapes("Signature").Delete
期待される画像がShapesコレクションにないと判断した場合は、Excel(Excelでしか知られていない奇妙な理由で)が画像をPicturesコレクションなどの別のコレクションに移動した可能性があります。これが疑われる場合は、次のマクロを使用してみてください。
Sub WhatAmI() Dim sTemp As String sTemp = "You selected this type of object: " & TypeName(Selection) sTemp = sTemp & vbCrLf sTemp = sTemp & "It's name is " & Selection.Name MsgBox sTemp End Sub
署名画像を選択して、マクロを実行します。選択したオブジェクトのタイプとその名前を示すメッセージボックスが表示されます。
次に、この情報を使用してマクロを変更し、必要に応じて画像を削除できます。
注:
このページ(または_ExcelTips_サイトの他のページ)で説明されているマクロの使用方法を知りたい場合は、役立つ情報を含む特別なページを用意しました。
_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。
このヒント(10037)は、Microsoft Excel 2007、2010、2013、2016、2019、およびOffice 365のExcelに適用されます。Excelの古いメニューインターフェイス用のこのヒントのバージョンは、次の場所にあります。
linkVBAでのワークシートの画像の削除。