• 締切済み

エクセルVBAで、ワードアート削除するには?

エクセルマクロ初心者でして、どうかご迷惑おかけするかもしれませんが、どうか助けていただけないでしょうか? エクセルマクロで名刺作ってまして、ワードアートをA1に作成して、A2~B6にコピーして作ってます。 しかし、ワードアートの一部分が間違えて変更する際に、A2~B6を 削除するのが大変なんですよ・・・ セルA2~B6のワードアートを指定して削除するVBAは、どうやってつくるのか、どなたか教えていただけないでしょうか? 一括削除だったら、原画のA1まで消えてしまって・・・( ̄~ ̄)ンー

みんなの回答

  • ja7awu
  • ベストアンサー率62% (292/464)
回答No.4

> ワードアートだけでなく、セルに文字や、写真(JPEGが多い)も > 入れることがありまして、そういった場合Objectになるのですかね? > セルに入った文字がひっかかってしまって・・・ それなら、こんな感じです。 セル A2:B6 の内容と、その範囲内に左上点がある Shapes、Picture等のDrawingObjects を 全て削除します。(セル内容は消去) Sub test() Dim Obj As Object Range("A2:B6").Clear For Each Obj In ActiveSheet.DrawingObjects   If Not Intersect(Range("A2:B6"), Obj.TopLeftCell) Is Nothing Then Obj.Delete Next End Sub

  • ja7awu
  • ベストアンサー率62% (292/464)
回答No.3

おっと!! 質問内容を忠実に解釈するとこんな感じです。 WordArtの左上角が「セルA2:B6に入っているものだけを削除」するのであれば、こんな感じです。 Sub test() Dim Shp As Shape For Each Shp In ActiveSheet.Shapes   If InStr(Shp.Name, "WordArt") = 1 Then     If Not Intersect(Range("A2:B6"), Shp.TopLeftCell) Is Nothing Then Shp.Delete   End If Next End Sub

takajin831
質問者

補足

しまった、言い忘れてました・・・ ワードアートだけでなく、セルに文字や、写真(JPEGが多い)も 入れることがありまして、そういった場合Objectになるのですかね? セルに入った文字がひっかかってしまって・・・ 初心者で申し訳ないです。( ̄~ ̄)ンー

  • ja7awu
  • ベストアンサー率62% (292/464)
回答No.2

こんな感じで如何でしょうか? WordArtの左上角がセルA1に入っているものを残し、削除します。 Sub test() Dim Shp As Shape For Each Shp In ActiveSheet.Shapes   If InStr(Shp.Name, "WordArt") = 1 Then     If Shp.TopLeftCell.Address <> "$A$1" Then Shp.Delete   End If Next End Sub

takajin831
質問者

お礼

なるほど、うまくいきました^^ A1以外ってのが頭に浮かびませんでした^^; なんと言ってお礼をいいやら、誠にありがとうございました。 ご恩は一生忘れません。

  • ham_kamo
  • ベストアンサー率55% (659/1197)
回答No.1

あくまで ・A1が一番最初に作成された ・ワードアート以外のShapeオブジェクト(図形など)がない 場合限定ですが、以下のマクロでできませでしょうか。 (実行するときに念のためシートのバックアップ(コピー)をとっておいた方がよいかと思います) Sub ワードアートを削除()   Do While Shapes.Count > 1     Shapes(2).Delete   Loop End Sub

takajin831
質問者

お礼

Do While Shapes.Count > 1  ←ここでひっかりました^^; ありがたい回答で感謝であります。 先に回答された方のを採用させてもらいました。 お手数おかけしました。

関連するQ&A

  • エクセルVBAでのワードアート操作をご教授ください

    はじめまして。 EXCEL2007を使っているVBA初心者です。 現在セル入力した内容からPOPをまとめて印刷するワークシートを作成しています。 ワードアートのフォントをVBAで変更させたいのですが上手くいきません・・・ 英数字でセル入力したときのみ、フォント変更されているようですが、全角文字をセルに入力したときワードアートに元々設定されているフォントで表示されてしまいます。 色々試したのですが、駄目でした(完璧に挫折です)  以下処理のイメージです。 セル A1に ”フォント変更したい” を入力。  セルA1のフォントを”HGP創英角ゴシックUB”に変更 マクロ実行 → ワードアートに 「フォント変更したい」 の文字を HGP創英角ゴシックUBのフォントで表示  させたいのですが・・・ Sheets(1).Shapes("WordArt1").Select FT = Sheets("LIST").Cells(1,1).Font.Name 'フォントネ-ム取り出し Selection.Characters.Font.Name = FT 'フォントネームをワードアートにセット このような記述です。 ご教授いただけると大変助かります。どうかよろしくお願いいたします。

  • エクセル ワードアートについて

    今、ワードアートを設置して、A1のセルを表示させるようにしてあります。 文字の大きさを指定しても、1文字でも5文字でもワードアートの枠いっぱいの大きさになってしまいます。 セルのように大きさが一定で、”折り返して全体を表示”のような機能はないでしょうか?

  • ExcelからWordに、値のみコピー

    セルA1に「aaa」 セルB1に「bbb」 セルA2に「ccc」があるとします。 そして、セルA3に「=A1 & B1 & char(10) & A2」と記入します。 このセルA3の値(aaabbb改行ccc)のみを、Wordにコピーしたいと思っています。 (タブやスペースなども無い状態で) そこでWordにセルA3の値をコピーし、「テキストのみ保持」を指定したのですが、「"」が勝手に入ってしまいます。 どのようにすればセルA3の値のみを、Wordにコピーできますか? できれば、Excelの関数やVBAのみを使って、値をきれいにコピーしたいと思っています。 (タブ、スペース、「"」等、勝手に挿入しないで) わかりにくい質問になってしまいましたが、 わかる方教えてください。 よろしくお願いします。

  • ExcelからWordに、値のみコピー

    セルA1に「aaa」 セルB1に「bbb」 セルA2に「ccc」があるとします。 そして、セルA3に「=A1 & B1 & char(10) & A2」と記入します。 このセルA3の値(aaabbb改行ccc)のみを、Wordもしくはメモ帳にコピーしたいと思っています。 (タブやスペースなども無い状態で) そこでWordにセルA3の値をコピーし、「テキストのみ保持」を指定したのですが、「"」が勝手に入ってしまいます。 どのようにすればセルA3の値のみを、Wordもしくはメモ帳にコピーできますか? できれば、Excelの関数やVBAのみを使って、値をきれいにコピーしたいと思っています。 (タブ、スペース、「"」等、勝手に挿入しないで) わかりにくい質問になってしまいましたが、 わかる方教えてください。 よろしくお願いします。

  • エクセル2007を使ったワードアートのコピー貼り付けについて。

    エクセル2007を使ったワードアートのコピー貼り付けについて。 エクセルを開くとシート2の(B2)、シート3の(C3)、シート4の(D4)、シート5の(E5)にワードアートで作った「注意」の文字が貼ってあります。使うにはこの文字を消して使いたいと思います。ただしシート5の分だけは消さないで残しておき(シート非表示)エクセルを閉じる直前にそれを利用して、シート2からシート4の元の位置に貼っておきたいと思います。自動マクロでは作れなかったのでどうしたらよいのでしょうか。

  • エクセルVBA

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

  • EXCELでワードアートからセル参照

    EXCELでワードアートを沢山使っています。ワードアートでなければ、文字幅を自由に扱えないからそうしているのですが、内容を変更する場合、一つ一つワードアートを指定してはテキストの編集を行う必要があり、大変手間が掛かっています。これをワードアートの中からセル参照を使えれば作業が楽になるのにと思っているのですが、そんなことは可能でしょうか? よろしくお願いします。

  • Excel2007のVBAで、ワードアートの塗りつぶしの「透過性」を変更する方法を教えてください!

    VBA初心者です。 趣味でMicrosoftExcel2003のVBAをやっていたのですが、Excel2007でVBAのコードの動作確認をした際に、ワードアートの単色塗りつぶしの透過性を変更するコードが使えませんでした。 Excel2003では Activesheet.Shapes(図形の名前).Fill.Transparency = 値 で出来たのですが、2007では「ワードアートが入っている図形」の塗りつぶしに反映されてしまいます。 また、2007ではマクロの記録を使ってもワードアート等の設定が記録されないので、困っています。 そこで質問です。 Excel2007で、ワードアートの塗りつぶしが単色の場合の『塗りつぶしの透過性』をVBAで設定する場合のコードを教えてください。 ご存知の方、どうか回答を宜しくお願い致します。

  • エクセル ワードアートのテキストにセルの値を表示

    ワードアートのテキストの内容に例えばA1のセルの値を表示したいです。 A1を変更すればワードアートもかわるように。 テキストボックスならできますよね それをワードアートで・・・できますか? マクロでもよいです。 よろしくおねがいします。

  • エクセルのVBA 条件分岐について

    エクセルのVBAで、条件分岐プログラムを考えております。 セルA1に入力された数値が、 2.0以下は"B1セルの値をC1セルへコピー 数値が 5.0以上の場合は"B2セルの値をC1セルへコピー それ以外の場合は”対象外”と表示させたいのですが ご教授お願いします。 又、条件分岐後の部分『C1セルへコピー』の部分を"マクロ1を実行" "マクロ2を実行"というように、変える様な事も出来ますでしょうか? 以上よろしくお願いします。

専門家に質問してみよう