• ベストアンサー

エクセルVBAのコード

教えてください。 エクセルでマクロを記録しVBEで編集したりしています。 その画像全てを1度に消去するにはどうしたら良いのでしょうか? やりたい動作は下記です。   シート1に文章と、たくさんの画像が貼ってあります。   画像の全てと、文章の一部を毎月入れ替えます。   シート内に画像がたくさんあり、ひとつひとつ切り取るのは大変です。   そこでシート内の画像全てを一度に切り取るマクロを作りたいのです。 例えば範囲指定してコピーをすると、文章も画像も罫線もコピーされてました。 でも範囲指定して削除をすると画像だけ削除されずに残ってしまいます。 画像だけを切り取りした動作を、マクロで記録して見てみたら、 ActiveSheet.Shapes.Range(Array("Picture 39", "Picture 47","Picture48"))._ Select Selection.Cut となっていました。 Pictre39などと、画像の番号を入れれば切り取りできるのは分かるのですが、 毎月シート内の画像は入れ替えるので、画像番号も変わってしまうと思うのです。 だから、シート内全ての画像を指定して消したいです。 画像の種類はネットでもらったイラストやクリップアートなどです。 購入したVBAの本でも分からないし、ネット検索でも良く分からず・・・ 宜しくお願いします。

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

  • ベストアンサー
  • Ce_faci
  • ベストアンサー率36% (46/127)
回答No.1

こんばんは activeshjeet.shapes.selectall selection.cut で試してください。

fujimaturi
質問者

お礼

ありがとうございます! 分かりやすいコードで参考になります。 助かりました

その他の回答 (1)

  • marbin
  • ベストアンサー率27% (636/2290)
回答No.2

画像のみ削除するサンプルです。 Dim shp As Object For Each shp In ActiveSheet.DrawingObjects If TypeName(shp) = "Picture" Then shp.Delete Next

fujimaturi
質問者

お礼

ありがとうございました! 見事に画像が消えました。 教えていただいたコードを勉強して今後に役立てたいと思います。 どちらの回答もとても助かったので、回答時間でポイント決めさせて頂いたのが申し訳ないくらいです。 本当にありがとうございました。

関連するQ&A

  • 画像を削除したい(VBA)

    指定したセルにある画像を削除する様にしたいのですが、 マクロで記録すると、どうしても(Picture 32)のど写真に番号が付いてしまいます。 写真は、その都度変わるので、指定の場所にある例えば、C5セルにある画像だけを消すVBAを教えて下さい。 宜しくお願いします。

  • エクセルVBA

    エクセルの一部セルを指定してマクロで、新しいブックにコピーしたいと思っています コピー&貼り付けの方法は知っていますが、ワンクリックの方法(指定範囲が広いため)を考えています 色々とVBAの専門書を見ましたが、シートまるごとコピーは複数の書物に載っていますが、見られたくない部分もあります よろしくお願いします

  • エクセル VBA

    VBA初心者です。教えてください。 エクセルで日々残高管理をしております。 1~31(日付別)までシートがあります。 例えばなんですが、今日は29日なので29のシートを一旦表示します。その後で、28日のシートの最終残高の金額をコピーして29日のシートの最初残高に数字を貼り付けたいのです。ボタンを押すと上記のような動作が起こるようにしたいのですが可能でしょうか。 ボタンは2~31のシートすべてに付けたいです。 マクロの自動記録で作ろうと思いましたが、30パターン程作らなければならなくて、面倒だと思いました。 どなたかお知恵を貸していただけないでしょうか 宜しくお願い致します。

  • VBAで、エクセルワークシート上の図を選択・削除したい

    VBAで、ワークシート上の図をすべて選択して削除するのは、どのように書いたら良いでしょうか?実際の図は一つなのですが、オートマクロで記述すると、 ActiveSheet.Shapes.Range(Array("Picture 3").Select のように、番号が変わってしまいます。

  • エクセル98 シート再計算のVBAについて

    シート再計算のマクロを作成しようと思っています。 「新しいマクロの記録」を選択して、適当な名前をつけてから、初期設定から「シート再計算」のボタンを押した後に、マクロの記録を終了させました。 そして、記録したマクロを実行しようとしたのですが、エラーが出てしまいます。 Sub 再計算() Application.MaxChange = 0.001 ActiveWorkbook.PrecisionAsDisplayed = False ActiveSheet.Calculate End Sub この中の「Application.MaxChange = 0.001」に異常があると出てしまいます。 そこで、この部分を削除したら上手く動作するようになったのですが、VBAのことについては良く分からないので、この部分を削除しても良かったのかどうか不安です。 アドバイスを御願い致します。

  • VBAを使ってエクセルシートをFAXで送信したい。

    最近仕事用のパソコンはFAX付きコピー機で印刷できるようになりました。 そこでエクセルの印刷設定の中でプリンターを(FAX)に変更して、FAX先電話番号を指定し送信ボタンを押せばプレビューしているシートをFAXで送信してくれるようにもなりました。 そこで、毎回プリンターを変更して、電話番号を指定するのは大変なのでマクロを作ろうと思ったのですがマクロではFAX送信が記録されませんでした。 なのでVBAで作るしかないと思ったのですがVBA素人の私には作ることができません。 どなたかご教授をお願いいたします。 OS:Win7 オフィス:エクセル2010 プリンタ:DocuCentre-IV C4470(FAX) 電話番号:短縮0006 送信するシート:アクティブシート

  • Excel2003で指定範囲内にある線の消去をVBAで

    VBA初心者で、マクロ記録をし、チョイスしながらプログラムを組み立てているのですが、どうしても範囲指定をした線を消去するというものがうまくいきません。 その線とは、別のページからコピーするもので、毎回同じ線ではありません。 良いプログラムはありませんでしょうか。 また、シートの中の線を全て消去する方法もあればおしえていただけますでしょうか。

  • エクセル:列の範囲選択をうまくできないでしょうか ?

    行数が約2000行ほどの表を毎月使用します。それでいろんな列をコピーして別の表に貼り付けたいのですが、列のコピーをする時に範囲指定でドラッグに結構時間がかかります。これをマクロでやりたいんですが、カーソルをおいた列の一番下の行まで範囲を指定すると言うのをマクロでできないでしょうか? 自動記録でマクロを造ろうとすると、実行した列を選択してしまい、任意の列の選択ができません。 よろしくおねがいします。

  • VBAでマクロを消すコマンドがありますか

    Sheet1に「コピー」ボタンを置き、クリックすると"Sheet1"のコピー"Sheet1 (2)"を作成するマクロを作成しました。 このあと、"Sheet1 (2)"にコピーされた全てのボタンとマクロを削除したいのですが、 ボタンの削除はうまくできましたがマクロが残ってしまいます。 これをやる目的は、Sheet1でいろいろ編集した帳票をReadOnlyの保存版を作って残したいということです。 ボタンが無くなるので"Sheet1 (2)"のマクロは使えなくなり、目的は達成しているのですが、できればごみとなった"Sheet1 (2)"のマクロを消したいのです。 VBAの記述内でマクロを消去することはできるのでしょうか。

  • VBAで困ってます

    VBA勉強中です。 複数のシートにあるデータを1シートにまとめるマクロを作っています。 ----------------------例-------------------- <SHEET1>      <SHEET2> あ 1  か 6    あ 5  か 30 い 2  き 7    い 10  き 35 う 3  く 8    う 15  く 40 え 4  け 9    え 20  け 45 お 5  こ 10    お 25  こ 50 このSHEET1とSHEET2をSHEET3に下記のようにまとめたいのです。 <SHEET3> あ 1  か 6     あ 5  か 30 い 2  き 7     い 10  き 35 う 3  く 8     う 15  く 40 え 4  け 9     え 20  け 45 お 5  こ 10    お 25  こ 50 動作をマクロの記録でみて、その動作を繰り返すようにすればいいのかなと思うのですが。。。なにしろ初心者で困ってます。

専門家に質問してみよう