• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセルの範囲のコピー)

エクセルの範囲のコピーがうまくいかない

このQ&Aのポイント
  • エクセルにおいてシートの範囲をコピーし、他のブックのシートにコピーするVBAがうまくいきません。
  • 「実行時エラー424;オブジェクトが必要です」というエラーメッセージが表示されます。
  • 正しいオブジェクトを指定してコピーと貼り付けを行うコードを記述してください。

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

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.1

こんにちは。 通常なら、そのマクロでも通るはずですが、それが、実体化していないファイル、つまり新規作成で作られたもので、保存していないファイルだったら、 「実行時エラー424;オブジェクトが必要です」 そういうエラーはあるかもしれませんね。 もともと、それは記録マクロですから、以下のようなマクロでは、そういう問題はないかと思います。 Sub testMacro2() Dim SourceFile, TourceFile, SourceSheet, TargetSheet As String SourceFile = "Book1" TargetFile = "Book2" SourceSheet = "Sheet1" TargetSheet = "Sheet1" With Workbooks(SourceFile) .Sheets(SourceSheet).Columns("A:F").Copy _  Workbooks(TargetFile).Sheets(TargetSheet).Cells(1, 1) End With End Sub

meilshitene
質問者

補足

さっそく、ご回答まことにありがとうございます。 >実体化していないファイル、つまり新規作成で作られたもので、保存していないファイルだったら ということで、フォルダに保存してご教示いただいたプログラムを実行したところ、「実行時エラー9:インデックスが有効範囲にありません」とエラーが発生しました。ファイルを保存する場所などに制約がありましたでしょうか?基本的なことを見落としているかもしれませんが、よろしくお願いいたします。

その他の回答 (2)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.3

こんにちは。 >この場合拡張子を含めてファイルを指定しないといけないということでしょうか? すみません、私も、言われて気が付きましたが、#1 の書き込みで、実体のある・なしを書きましたが、 SourceFile = "Book1.xls" TargetFile = "Book2.xls" 両方とも、保存がしてあって、ファイルがあれば、拡張子を付けなくてはならないのですが、両方とも保存されていない状態では、 SourceFile = "Book1" TargetFile = "Book2" できるのですね。そういう例は、めったにないことかもしれませんが。

meilshitene
質問者

お礼

Wendy02さん、初心者にも関わらず、丁寧なご回答ありがとうございました。 ちょっとしたことでも、自分で気がつかないことがあるもので、助かりました。ありがとうございました。

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

こんにちは。 コードは、「標準モジュール」に登録してください。 私のマクロは、ペーストされる側は、保存をしていなくてもよいはずです。 「インデックスが有効範囲でない」というエラーは、そのブック名やシート名が実際のものとは違うということですね。 もしも、新規ブックにペーストするなら、コードが変わってきます。

meilshitene
質問者

補足

ありがとうございます。コピーをする簡単な方法がわかりました。 「標準モジュール」に登録はしなかったのですが、以下のように SourceFile = "Book1.xls" TargetFile = "Book2.xls" としたらエラーがなく、実行できました。この場合拡張子を含めてファイルを指定しないといけないということでしょうか?

関連するQ&A