• ベストアンサー

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

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

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

  • ベストアンサー
  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.1

Dim c As Excel.Shape For Each c In ActiveSheet.Shapes c.Delete Next とか?

cmc32000
質問者

お礼

ありがとうございました。できました。

関連するQ&A

  • エクセル VBA 画像操作

    VBAについて質問です。 画像を何枚かを重ねて、シート上に置いてあります。 VLOOKUPにて、画像番号を獲得して、その番号の画像を最上面へ移動させたいのですが ActiveSheet.Shapes.Range(Array("Picture 201")).Select ActiveWindow.SmallScroll ToRight:=-342 Selection.ShapeRange.ZOrder msoBringToFront ActiveSheet.Shapes.Range(Array("Picture 221")).Select ActiveWindow.SmallScroll ToRight:=-342 Selection.ShapeRange.ZOrder msoBringToFront ActiveSheet.Shapes.Range(Array("Picture 215")).Select ActiveWindow.SmallScroll ToRight:=-342 Selection.ShapeRange.ZOrder msoBringToFront ("Picture 215")の部分を、セルの値で変更したいのですが どうか、お力お貸しください。 よろしくお願いします。

  • エクセルVBAで複数の図に名前をつけたい

    エクセルVBAで複数の図に名前をつけたい エクセルで見出しと合計2カ所などウィンドウ枠固定を複数つける ことはできないので、かわる方法として図のリンク貼り付けを利用 しようと思い下記を作りました。 Sub test()   Range("A100", "R100").Select   Selection.Copy   Range("A1").Select   ActiveSheet.Pictures.Paste link:=True   ActiveSheet.Pictures.ShapeRange.Name = "合計1"   Range("A200", "R200").Select   Selection.Copy   Range("A2").Select   ActiveSheet.Pictures.Paste link:=True   ActiveSheet.Pictures.ShapeRange.Name = "合計2" ・・・(1) End Sub 必要に応じて合計1または合計2を削除します Sub 図1削除() ActiveSheet.Shapes("合計1").Delete End Sub Sub 図2削除() ActiveSheet.Shapes("合計2").Delete End Sub (1)のところで 「このメンバにアクセスできるのは、単一の図形の場合だけです」エラーになります。 エラーがでないように図に名前をつける方法をおしえていただけないでしょうか。 何卒よろしくお願い致します

  • エクセルVBAのコード

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

  • エクセル★画像選択のVBAコード

    いつも参考にさせて頂いております。 リンク先の画像貼付まではうまく行くのですが 貼り付けた画像のセレクト方法を教えてください。 VBAコード Range("a1").Select Sheets("sheet2").Select Sheets("sheet1").Pictures.Insert Cells(2, 2) Sheets("sheet1").select 質問内容 シート1のA1に貼り付けられた画像を選択したいのですが・・・? ActiveSheet.Shapes("Picture 10").Select               ↑ このコードでは画像のナンバーが変わるとエラーとなってしまいます。 どうぞ宜しくお願いいたします。

  • Excel 2007 VBAで 図の削除をする為のマクロの記入方法を教

    Excel 2007 VBAで 図の削除をする為のマクロの記入方法を教えて下さい。 下記のマクロで、図を貼り付けましたが、 次回の処理のために、前回貼り付けた図を削除したいのですが、 Excel上では、その図を指定してDeleteキーで簡単に削除出来ますが、 この操作を、オートマクロで記入すると、何も記入出来ません。 マクロではどのように記入するのか教えて頂けませんか ' 貼り付け Macro Range("AI9:AU27").Select Selection.CopyPicture Appearance:=xlScreen, Format:=xlPicture ActiveWindow.SmallScroll Down:=36 Range("C57").Select ActiveSheet.Paste

  • Excel VBA マクロ 画像(図)貼り付け

    Excel2010にて、 VBA マクロ 画像(図)貼り付けを行いたいと思っています。 しかし、マクロを自動登録すると、ActiveSheet.Pictures.Paste.Selectになり、AddPicture ができません。 下記のマクロをAddPictureへ変換したいのですが、そのまま、InsertをAddpictureに変更してもエラーになってしまいます。 いい方法を教えてください(ToT)/~~~。 どうぞよろしくお願いします。 Sub Test() ' ' Test Macro ' Rows("4:4").Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove Selection.RowHeight = 150# Range("C4").Select ActiveSheet.Pictures.Insert( _ "E:\FolderA\fileC.gif"").Select ActiveSheet.Pictures.Paste.Select Range("D4").Select ActiveSheet.Pictures.Insert( _ "E:\FolderA\fileD.gif"").Select Selection.Cut Range("D4").Select ActiveSheet.Pictures.Paste.Select Range("E4").Select ActiveSheet.Pictures.Insert( _ "E:\FolderA\fileE.gif"").Select Range("E4").Select ActiveSheet.Pictures.Paste.Select Range("F4").Select ActiveSheet.Pictures.Insert( _ "E:\FolderA\fileE.gif"").Select ActiveSheet.Pictures.Paste.Select Range("G4").Select ActiveSheet.Pictures.Insert( _ "E:\FolderA\fileG.gif"").Select Selection.Cut ActiveSheet.Pictures.Paste.Select Range("H4").Select ActiveSheet.Pictures.Insert( _ "E:\FolderA\fileH.gif"").Select Selection.Cut ActiveSheet.Pictures.Paste.Select Range("I3").Select ActiveSheet.Pictures.Insert( _ "E:\FolderA\fileI.gif"").Select Selection.Cut ActiveSheet.Pictures.Paste.Select Range("J4").Select ActiveSheet.Pictures.Insert( _ "E:\FolderA\fileJ.gif"").Select Selection.Cut ActiveSheet.Pictures.Paste.Select Range("K3").Select ActiveSheet.Pictures.Insert( _ "E:\FolderA\fileK.gif"").Select Selection.Cut ActiveSheet.Pictures.Paste.Select Range("L3").Select ActiveSheet.Pictures.Insert( _ "E:\FolderA\fileL.gif"").Select ActiveSheet.Pictures.Paste.Select Range("M4").Select ActiveSheet.Pictures.Insert( _ "E:\FolderA\fileM.gif"").Select Selection.Cut ActiveSheet.Pictures.Paste.Select Range("N4").Select ActiveSheet.Pictures.Insert( _ "E:\FolderA\fileN.gif").Select Selection.Cut ActiveSheet.Pictures.Paste.Select End Sub

  • エクセルマクロ 全シートに図の挿入をしたい

    初心者です。よろしくお願いします。 エクセル2007 bookはxsl(互換表示で開いています) 200シートくらいある請求書です。全シートの同じ場所に角印を押したいです。 自分で考えたコードは1シート目の名前を"FACE"に変え印("Picture 4")を貼りつけておきます。 これだとSheets("FACE")に2個目の印が押されてしまいます。 印押しBook.xslのシート1に請求書の雛形と印を用意しておいて マクロを動かすと請求書Book.xslの全シートに印が押されるものが作れますか? Sub 印押しマクロ2() Dim myTop As Single, myLeft As Single myTop = Sheets("FACE").Shapes("Picture 4").Top myLeft = Sheets("FACE").Shapes("Picture 4").Left Sheets("FACE").Shapes("Picture 4").Copy Dim Sht As Worksheet For Each Sht In Worksheets Sht.Select     ActiveSheet.Paste     ActiveSheet.Shapes("Picture 4").Top = myTop     ActiveSheet.Shapes("Picture 4").Left = myLeft Next Sht End Sub

  • ワークシートの削除

    For SheetSakujo = 3 To SheetCount - 1 Worksheets(SheetSakujo).Select If ActiveSheet.Name <> "★" Then If Range("A2") = "" Then ActiveWindow.SelectedSheets.Delete End If ElseIf ActiveSheet.Name = "★" Then Exit For End If Next VBAでワークシートの削除を行っています。 A2が空白のシートを消そうと思って上記のようなコードをくみましたが、 削除されるとシートが減ってしまうため、次のシートも空白だった場合、消されないで飛ばされてしまいます。 3枚目のシート:空白 4枚目のシート:空白 5枚目のシート:空白     ↓ sheetsakujoが「3」なので3枚目は削除される。 次の4枚目のシートが3枚目が削除されたため、「3番目のシート」になるため、次に削除されるのは5枚目のシート。 この場合、どのようにしたらいいのでしょうか?

  • VBA オートシェイブや図を選択したいのですが

    VBAでシート上にある全てのオートシェイブや図を選択したいのですが どのようにすればいいでしょうか? 手作業でなら、CTRL+Gでオブジェクトを選択すればできますがVBAで行いたいです。 Sub test() Dim s As Shape For Each s In ActiveSheet.Shapes s.Select Next End Sub をしても、一つずつしか選択できません。 全てを選択状態にしたいです。

  • エクセルVBAによるシート間コピー&ペースト

    「データベース控え」と「手番」という2つのシートがあります。 今、シート「データベース控え」を開いています。 VBAを使って「手番」シートにA3:S3をコピー&ペーストする記述方法を教えて下さい。 マクロで表現すると以下の記述となります。 繰り返し処理をする実運用では画面が切り替わるなどスマートな方法ではないので困っています。 Range("A3:S3").Select Selection.Copy Sheets("手番").Select Range("A3").Select ActiveSheet.Paste Sheets("データベース控え").Select Range("A4").Select 実運用では数値の部分を変数に置き換えて繰り返し処理をしたいと思っています。よろしくお願いいたします。

専門家に質問してみよう