Apple IDログイン機能メンテナンスのお知らせ

マクロを実行してコピー元の情報(行・列の幅等)をそのままコピー先にコピペする方法を教えてください。
マクロ
Sub データコピペ()
'コピー元のファイルを開く
Workbooks.Open ActiveWorkbook.Path & "\" & "FDデータ.xlsx"
'Book1の値をコピー
Workbooks("FDデータ.xlsx").Sheets("Sheet1").Range("A1:B2").Copy
'Book2に値貼り付け
ThisWorkbook.Sheets("FDデータ").Range("A1:B2").PasteSpecial Paste:=xlPasteValues
Workbooks("FDデータ.xlsx").Close
End Sub
があります。
マクロを実行すると
コピー元ファイル「FDデータ.xlsx」の指定シート「Sheet1」のセル値「A1:B2」が
コピー先のファイル「作業ブック:ThisWorkbook」の指定シート「FDデータ」のセル値「A1:B2」
にコピーされます。
しかし、コピー先のシートとセルを確認するとコピー元のセル値の情報(行・列幅等)になっておりません。
コピー元の情報がそのままコピー先にコピーできる方法があれば教えてください。
詳しくは添付画像をご確認ください。(画像上がコピー元画像・下がコピー先コピー先画像になります)
よろしくお願いいたします。

「エクセルのマクロについて教えてください。」の質問画像

質問者からの補足コメント

  • うーん・・・

    回答ありがとうございます。
    ご指示通りに行いましたが
    Workbooks("FDデータ.xlsx").Sheets("Sheet1").Range("A1:B2").Copy _
    ThisWorkbook.Sheets("FDデータ").Range("A1")
    の部分が黄色くなり
    エラーが出てしまいます。
    解決方法をお願いいたします。

    No.1の回答に寄せられた補足コメントです。 補足日時:2023/02/07 15:44
  • うーん・・・

    何度も申し訳ありません。
    やはり同じように
    実行すると「インデックスが有効範囲にありません」と警告文が表示されて
    「デバック」をクリックすると
    Workbooks("FDデータ.xlsx").Sheets("Sheet1").Range("A1:B2").Copy _
    ThisWorkbook.Sheets("FDデータ").Range("A1:B2")
    の部分が黄色になり実行できません。
    申し訳ありません、解決方法をよろしくお願いいたします。

    No.2の回答に寄せられた補足コメントです。 補足日時:2023/02/07 16:29
  • うーん・・・

    一旦コピペしてから
    別なマクロでコピー先のシートの(行・列)を調整するマクロを組んだ方が良いでしょうか。

      補足日時:2023/02/07 16:53
  • うーん・・・

    はい、名前の打ちまちがい等はありませんでした。
    質問のコードは実行されます。
    何が問題かが不明です。
    よろしくお願いいたします。

    No.3の回答に寄せられた補足コメントです。 補足日時:2023/02/07 17:36

A 回答 (3件)

>実行すると「インデックスが有効範囲にありません」と警告文が表示されて



この場合ってファイル名・シート名・セルの指定に問題があるのですけど、名前について全角・半角の打ち間違いなどはありませんか?
とその前に質問のコードでは問題なくできるのでしょうか?
この回答への補足あり
    • good
    • 0
この回答へのお礼

色々とありがとうございました
もう少し整理してみます

お礼日時:2023/02/07 17:55

Workbooks("FDデータ.xlsx").Sheets("Sheet1").Range("A1:B2").Copy _


ThisWorkbook.Sheets("FDデータ").Range("A1:B2")

こちらかな?
エラーでメッセージが出る場合はその情報もあると・・・
この回答への補足あり
    • good
    • 0

'Book1の値をコピー


Workbooks("FDデータ.xlsx").Sheets("Sheet1").Range("A1:B2").Copy
'Book2に値貼り付け
ThisWorkbook.Sheets("FDデータ").Range("A1:B2").PasteSpecial Paste:=xlPasteValues



'Book1の値をコピー + 'Book2に全て貼り付け
Workbooks("FDデータ.xlsx").Sheets("Sheet1").Range("A1:B2").Copy _
ThisWorkbook.Sheets("FDデータ").Range("A1")

かな?
この回答への補足あり
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!