• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Excel VBA 超初心者 困っています。)

Excel VBAでマクロを作成し、ページを追加する方法についての困りごと

このQ&Aのポイント
  • Excel VBAを使って見積書を作成しています。マクロでページを追加するためには、貼り付け先のセルを指定する必要がありますが、インターネットで調べてみてもうまくいかず、エラーが発生してしまいます。
  • 具体的には、実行時エラー1004が発生し、RangeクラスのPasteSpecialメソッドが失敗してしまいます。ワークシートを指定する必要があると思われますが、正しい指定方法がわかりません。
  • どなたか、この問題に対する解決方法をご教示いただけないでしょうか。お願いいたします。

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.1

こんなカンジでしょうか。 sub macro1()  dim res as range  on error resume next ’シートを保護する  activesheet.protect userinterfaceonly:=true ’対象のセルを指定する  set res = application.inputbox(prompt:="Select Range", title:="Selection", type:=8) ’キャンセルしたら終了する  if res is nothing then exit sub ’コピーして貼り付ける  range("A42:AZ84").copy destination:=res.cells(1) end sub

a080
質問者

お礼

 返事が遅くなってしまって申し訳ありませんでした。  早々にご回答をいただいていたようで、本当に感謝いたします。  keithin様の文を殆どそのまま貼り付けましたら、ちゃんと動いてくれました。  勉強不足で、時間もあまりなくて、自力ではもう無理かなと思っていたところ、思い切って質問してみて良かったです。  本当にありがとうございました。

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

その他の回答 (1)

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.2

原因は、copy後に余計なメソッド(Inputbox)がある為、copyがリセットされ PasteSpecialメソッドでコピー元なしとなるからです。 copyをInputBoxメソッドの直後に移動すれば動作します。 因みにキャンセルボタン押下するとInputBoxメソッドでエラーになるので もう少しweb検索して学習して下さい。

a080
質問者

お礼

 お返事が遅くなり、申し訳ございませんでした。  また、早々に回答してくださりありがとうございました。  mu2011様にご指摘された箇所を見て、納得です。  それが原因でエラーが出ていたのですね。  何をどう検索すると自分の知りたいことが解るのかさへもわからない状態になっていました。     ここへ質問してこんな風に回答していただき本当に感謝です。  キャンセルボタン押下・・・・の件も、頑張って調べて学習してみます!  本当にありがとうございました。

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

専門家に質問してみよう