• ベストアンサー

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

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

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

  • ベストアンサー
  • end-u
  • ベストアンサー率79% (496/625)
回答No.1

コピーしてシートに貼り付け後、所定の位置に移動 ..という考え方で良いと思います。 Sub try_1()   Dim r As Range   'Shapeの名前を確認してください。もしくは任意でつけるか。   Sheets("Sheet5").Shapes("正方形/長方形 1").Copy      With Sheets("Sheet2")     Set r = .Range("B2")     .Paste     With .Shapes(.Shapes.Count)       .Left = r.Left       .Top = r.Top     End With   End With      With Sheets("Sheet3")     Set r = .Range("C3")     .Paste     With .Shapes(.Shapes.Count)       .Left = r.Left       .Top = r.Top     End With   End With   ':   ':   Set r = Nothing End Sub マクロ記録されない事のささやかな対策としては Sub try_2()   Dim ws As Worksheet   Dim r As Range   Dim s As Shape      Set s = Sheets("Sheet5").Shapes("正方形/長方形 1")   s.Copy      Set ws = Sheets("Sheet2")   Set r = ws.Range("B2")   ws.Paste   With ws.Shapes(ws.Shapes.Count)     .Left = r.Left     .Top = r.Top   End With   ':   ':   Set r = Nothing   Set s = Nothing   Set ws = Nothing End Sub ..など、型を明示した変数にセットし、 s. 入力後ポップアップされる「入力候補」や 「プロパティ/メソッドの一覧」を参考に、 「ヘルプ」や「オブジェクトブラウザ」を駆使しながら コーディングしていくような感じになるかと思います。 もしくは2010からシェイプ関連のマクロ記録が復活してますから バージョンアップを検討されても良いかもしれません。 #そのうち2007でもサポートされる可能性はあるのでしょうかねぇ...

kafun-show
質問者

お礼

回答いただいてから30分後に新規ブックで試してみましたら完璧に希望通りでした。作成中のブックに当てはめて行うと「指定された値は境界を超えています」のメッセージと、フォームで作ったボタンが移動したりしてうまくいきません。作成中のブックは自分でもよく把握できない程ゴチャついている状態なので数日苦闘していましたが理由はわかりませんでした。別の方法で注意書きがでるよう考えてみます。回答いただいたマクロは非常にわかりやすく簡潔に書かれていて初心者の自分でも理解ができて非常に参考になり素晴らしく思いました。次回作成にはもっと整理したブックで使わせていただこうと思っております。誠にありがとうございました。お礼が遅くなり申し訳ございません。

関連するQ&A