重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

ワークブック「転記元」のデータを別のワークブック「転記先」へデータ転記したいです。
一見似ているレイアウトなのですが、結合セルで微妙に異なっていまして
見様見真似では繰り返し処理などの最適化が上手く行かずレイアウトが崩れたりと苦慮しております。

「転記元」は添付画像のようなレイアウトで1ページは1行〜23行まで。
同様のレイアウトで24行目からが2ページと続いていきます。

また、「転記先」の1ページは1行〜35行まで。
36行目から2ページと続いていきます。

転記したいデータは「転記元」赤塗りつぶし箇所から「転記先」の黄色塗りつぶし箇所です。
※シートに記載している数字1〜5と「メモ」は項目名になります。
※ページは50ページほどあります。

以下がエクセルファイルになります。
週明けの提出が控えておりまして、何卒お知恵をお貸しください。

==========

転記元.xls
https://33.gigafile.nu/0225-c6c757629d57b5ed25b7 …

転記先.xltm
https://33.gigafile.nu/0225-dfb3359c8b59264acb12 …

「別ブックへのエクセルマクロのデータ転記に」の質問画像

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

  • ご確認ありがとうございます。


    1.マクロはどのブックに格納しますか。

    A.②転記先.xltm になります。



    2.転記元.xlsと転記先.xltmは同じフォルダ内に格納されていますか。

    A.現状では同じフォルダ、異なるフォルダ、どちらのケースもあります。
    必ずしも同じフォルダに格納されていない場合がほとんどかもしれませんが
    格納場所を統一することは可能です。

    No.1の回答に寄せられた補足コメントです。 補足日時:2025/02/21 22:43
  • 以下、続きです。


    3.転記元.xlsの転記対象となるページ数は、印刷時のページ数と同じで良いですか。
    A.それが出来たら挙動としては非常に理想です。
    必ずしも50ページあるわけでもなく、逆に(めったになりですが)50ページ以上になる場合もあり得ます。


    4.マクロ実行時、データ転記の前に、
    転記先のシートは、コピー対象となるページ数分、マクロで作成する必要がありますが、その認識であってますか。(1ページ目のレイアウトをコピーして作成する)
    A.合っています。
    それをしたかったのですが、うまくできなかったので転記前にテンプレートをコピーするマクロを実行して準備作業を行なっていました。

      補足日時:2025/02/21 22:43

A 回答 (3件)

No2です。


前回のマクロに誤りがありましたので、訂正します。
前回のは破棄して、こちらを採用してください。
https://ideone.com/KNn3oU

使用上の注意点の追記です。
3.転記元ページ数上限
転記元のページ数が100を超えた場合、エラーメッセージを表示し、処理を打ち切ってます。
もし、転記元のページが100ページ以上になる場合は、以下の個所を
修正するか、削除してください。

If maxp > 100 Then
MsgBox ("転記元ページ数が100を超えてます")
Exit Sub
End If
    • good
    • 0
この回答へのお礼

ありがとうございます!
理想通りの挙動で非常に助かりました。
学びの種にもなりまして、いただいたコードで勉強していこうと思います。

お礼日時:2025/02/23 04:07

下記にアップしました。


転記先.xltmの標準モジュールに格納してください。
https://ideone.com/8BE2P2

使用上の注意点です。
1.転記元ブックの格納フォルダ
Const folder1 As String = "D:\goo\data" '転記元ブック格納フォルダ
は、あなたの環境に合わせて適切に設定してください。

2.印刷範囲及び改行の設定
'改ページを入れる
For pno = 2 To maxp
row2 = (pno - 1) * 35 + 1
ws2.Range("BS" & row2).PageBreak = xlPageBreakManual
Next
'印刷範囲設定
ws2.PageSetup.PrintArea = "$A$1:$BR$" & maxp * 35

上記については、こちらの環境では、適切に設定されましたが、
もし、あなたの環境で、適切に設定されない場合は、削除してしてください。特に印刷を行わないのであれば不要です。

以上、不明点があれば、補足してください。
    • good
    • 0

補足要求です。


1.マクロはどのブックに格納しますか。
①転記元.xls
②転記先.xltm
③上記以外のブック(.xlsm)
のどれでしょうか。

2.転記元.xlsと転記先.xltmは同じフォルダ内に格納されていますか。

3.転記元.xlsの転記対象となるページ数は、印刷時のページ数と同じで良いですか。
50ページのうち、45ページまで、データがあり、残りの5ページはデータ欄が空白のような場合、45ページまでをコピーしたいというようなケースは考慮しないで良いですか。
ページ数は、原本シートのPageSetup.Pages.Count により取得します。

4.マクロ実行時、データ転記の前に、
転記先のシートは、コピー対象となるページ数分、マクロで作成する必要がありますが、その認識であってますか。
(1ページ目のレイアウトをコピーして作成する)
この回答への補足あり
    • good
    • 0
この回答へのお礼

ご確認ありがとうございます。
本文に補足コメント追記いたしました。

お礼日時:2025/02/21 22:45

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

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A