ロブは、ワークシートから写真を削除していた問題について書いています。彼は画像(署名)を図形として追加するマクロを持っていますが、後で画像を削除しようとすると、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トレーニングのソースです。

このヒント(2480)は、Microsoft Excel 97、2000、2002、および2003に適用されます。Excel(Excel 2007以降)のリボンインターフェイス用のこのヒントのバージョンは、次の場所にあります。