• ベストアンサー

ExcelVBAで、シートに画像が貼り付けてあるかを判断したいのですが

ExcelVBAで、シートに画像が貼り付けてあるかを判断したいのですが、 画像が貼り付いているならその画像を削除し、貼り付いていなければ何もしない、というExcelVBAを組みたいのですが、画像が貼り付いているかどうかの判断は可能なのでしょうか? ご存知の方がいらっしゃいましたら、何卒ご教示下さいますよう、宜しくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • xls88
  • ベストアンサー率56% (669/1189)
回答No.3

TypeName関数で戻り値を判定してみました。 Dim pic As Shape For Each pic In ActiveSheet.Shapes If TypeName(pic) = "Picture" Then pic.Delete End If Next

bab2461
質問者

お礼

ご回答、誠に有難うございました。 図形全てを削除するわけにはいきませんので、このご回答が一番近いのですが、うまく動作しませんでした。 これから色々と試してみます。 どうも有難うございました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.2

問答無用で消して良いのなら↓だけでも。 ActiveSheet.DrawingObjects.Delete 貼り付けてあるグラフなども消えちゃいますけど。

bab2461
質問者

お礼

ご回答、誠に有難うございました。 これから試してみたいと思います。

全文を見る
すると、全ての回答が全文表示されます。
  • DIooggooID
  • ベストアンサー率27% (1730/6405)
回答No.1

Sub PicDelSamp()   Dim Sh As Shape      For Each Sh In ActiveSheet.Shapes '---アクティブシート全ての図形に対し         Sh.Delete      Next Sh   End Sub

bab2461
質問者

お礼

ご回答、誠に有難うございました。 これから試してみたいと思います。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • ExcelVBAで画像をシートに貼り付けたり、張り付いた画像を削除した

    ExcelVBAで画像をシートに貼り付けたり、張り付いた画像を削除したりするとき マクロの自動記録で次のようにしています。 1.貼り付け ActiveSheet.Pictures.Insert(画像ファイル名).Select 2.削除 ActiveSheet.Shapes("Picture n").Select Selection.Cut "Picture n"のnは数値です。この数値がどんどんカウントアップされます。 カウントアップされると、このブックを閉じないで使い続けていると10万でも100万でもカウントアップされてしまうのでしょうか? "Picture n"ではなく、「画像ファイル名」とか、任意に設定した名称で指定することはできないでしょうか? よろしくお願いします。

  • モジュールシートの置換え等をExcelVBAでできるのでしょうか。

     ExcelVBAにより、「VBAの内容を変更する」ことができるということを聞いたことがあります。それは本当に可能なのでしょうか。  例えば、モジュールシートを含んだ「コピー元.xls」と「変更.xls」という2つのファイルがあるとして、変更.xlsのモジュールシートをコピー元.xlsのモジュールシートに置き換えることなどできるのでしょうか。それは、置き換え前のモジュールシートが含まれる変更.xlsにVBAを記述してもできるのでしょうか。  もしできるのであれば、VBAの書き方をお教えいただけないでしょうか。よろしくお願い致します。

  • ExcelVBAで緻密な画像を描く方法

    ExcelVBAでバーコードを作りたいのですが、AddShapeでバーを作成しても0.05cmより細い線を作ることができません。ビットマップに直接書き込む方法もあるのかと思いますが、よくわかりません。ご存じの方は教えていただけないでしょうか。

  • EXCELVBAを使ってシートを一定時間ごとに連続で切り替えるマクロを

    EXCELVBAを使ってシートを一定時間ごとに連続で切り替えるマクロを組みたいのですがどう書けばいいのかわかりません。どうすればいいのでしょうか

  • ExcelVBA上で特定の座標への画像添付

    ExcelVBAのプログラミングに関する質問です。 ExcelVBA上で特定の座標に任意の画像ファイル(例えばjpegなど)をはりつけるには、具体的にどの様にプログラムを記入すれば良いでしょうか? また、複数の座標の中から一定時間ごとに順々に画像を貼り付けたいと考えております。 その場合、ある座標に画像が添付された後に、他の座標に画像ファイルを貼り付けるという作業が必要になると思います。 その中で、前に貼り付けた画像を消すことが必要になると考えます。 ExcelVBA上で任意の画像を特定の座標に添付する方法と、貼り付けた画像を消す方法を教えていただきたいと考えております。 よろしくお願いいたします。

  • マクロで指定の2つのsheetを交互に選択

    まだまだexcelVBA初心者です。 お世話になります。 excelVBAで、指定の2つのsheetを交互に1秒間隔で 選択表示させるにはどう書けば良いのでしょうか? sheet1,sheet2を指定するものとしてお願いします。 可能ならば5秒後に自動停止する機能があれば嬉しいです。 表示内容が類似したものを比較するのに使えると思います。 お手数おかけしますが、よろしくご教示下さい。

  • ExcelVBAを使ってシートの行の情報をテキストファイルに書き込みたいのですが...

    ExcelVBAを使ってシートの行の情報をテキストファイルに書き込みたいのですが... (とりあえず、一行分をテキストファイルに書き込みたいです) 色々なサイトを見ても難しそうなことが多く書いてあったので、上記のような例でサンプルを使って(なるべくシンプルな形で)ご教授していただける方がいらっしゃればお願いいたします。

  • C# Excelのsheetに表示された画像を削除したい。

    C#で、Excelのsheetに表示された画像を削除したい。 C#で、エクセルに画像の貼り付け→PDFの印刷→画像の削除という流れのプログラムを組みたいのですが、 エクセルに貼り付けた画像の削除がうまくいきません。 del = (Excel.Range)col.Cells[1, 1]; del.Value2 = null; だと、テキストは削除されますが画像は残ったままになります。 画像のみを削除する場合は、座標なので指定した上で削除するのかなと思って、 いろいろ探しましたが見つかりません、、、 知識不足で申し訳ありません。 ご教示よろしくお願いします。

  • ExcelVBAで指定したセルを画面の左上などになるようにシートを動か

    ExcelVBAで指定したセルを画面の左上などになるようにシートを動かしたい。 セルを指定してシートを動かす方法をお教えください。 一番したいのは指定セルを画面左上にすることです。 他には画面四隅、中央にする指定方法があるでしょうか。、

  • ExcelVBA:フォームを表示しながらワークシートに入力する方法

    ExcelVBAで、フォームを表示した状態で、ワークシートやセルに入力する方法ってあるでしょうか? 回答よろしくお願いします。

このQ&Aのポイント
  • 床材が傷む最大の理由は何ですか?日光による紫外線?それとも、LED照明の光線ですか?踏むから水分が抜けている?足の裏が油分を吸い上げている?いろいろな理由があると思うのですが、マットだとかテレビラックだとか、何かで床材を覆っているところは無事みたいなので、そこから推測される理由を教えてください。
  • 床材が傷む原因は何でしょうか?床材が綺麗なままなのはキッチンマットの上だけで、他の場所では傷んでいるようです。日光や照明の光量、水分、足の裏の油分など、さまざまな要因が考えられます。しかし、マットや家具の上では床材が保護されているようです。推測すると、マットや家具が床材を保護し、他の場所では直接的な影響を受けている可能性があります。
  • 床材が傷む原因を教えてください。リビングにアイランド式のキッチンがあり、床材がささくれているようです。キッチンの下にはキッチンマットが敷かれていますが、そこだけ床材が綺麗なままです。床材が傷む原因として考えられるのは、日光による紫外線やLED照明の光線、水分、足の裏の油分などです。ただし、マットや家具で床材が覆われている場所は傷んでいないようです。推測すると、マットや家具が床材を保護しているため、他の場所よりも傷みが少ない可能性があります。
回答を見る

専門家に質問してみよう