dポイントプレゼントキャンペーン実施中!

こんばんは。
excel vbaで以下内容についてご教示ください。

下記のファイル(A~D)に個別の表があります。(表の形はバラバラで、行もバラバラです)
各ファイルの表のNO 氏名 部署 TEL をコピーし
ファイルXへ貼り付けて保存したいのです。(複数ファイルの表を一つのファイルXのシート1にまとめてコピー)
※ファイルAの表の下に2行空けてファイルBの表
※ファイルBの表の下に2行空けてファイルCの表
※ファイルCの表の下に2行空けてファイルDの表
※各表すべてに罫線を引く
※デスクトップのファルダZにすべてファイルがあります

ファイルA:NO 氏名 部署 TEL 
ファイルB:NO 氏名 部署 県  TEL FAX
ファイルC:NO 氏名 部署 TEL 年齢
ファイルD:NO 氏名 部署 出身 TEL

A 回答 (2件)

No1です。



>ファイルXのシート1にファイルA~Dをまとめてコピーして貼り付けて、不要な
>部分を削除したほうが処理が速いのではと考えたのですがうまくできませんでした。
そこまでの処理を作成できるのなら、各シートの必要な列だけコピーして、ファイルXにペーストする方法のほうが簡単だと思います。
仮に、コピー元がA、B、C、E列であっても、ペースト時にはA、B、C、Dに詰めてペーストされますので。

ファイルA、Cの場合はA、B、C、D列(通常のコピペ)
ファイルB、Dの場合はA、B、C、E列(1列空けてコピー)
になるようにすれば良いので、No1の処理よりはかなり単純化できます。
    • good
    • 0

こんにちは



何がわからないのかが不明なので、以下に、比較的わかり易そうな手順を記しておきます。

※ ファイルXは空の状態と仮定します。
※ 各ファイルはすでに開いているものと仮定しています。
 (開いていない時は、コピペの際に開いて、終わったら閉じる)

1)ファイルA~DをファイルXのシート1~4にコピー
 (シート全部のコピーでも良いですが、各シートのUsedRangeをコピーすれば足ります)
 (ご質問文には「ファイル」としか記載がありませんが、対象は1シートだけであるものと仮定しています。)
1')コピペした際に罫線も引いておく
 (どのような罫線か不明ですが、元のシートにも罫線があるなら、
  コピペで罫線もコピーされるので、この処理は不要になると思います)
2)シート2、4のD列を削除
3)シート2~4のUsedRangeのA~D列をシート1に順にコピー
4)シート2~4を削除

3)の処理の際の、「下に2行空けて」は、おなじみのEnd(xlUp)で最終行を取得するか、UsedRangeなどで最終行を取得しておいて、Offset(3)で次にペーストすべき行とすれば良いでしょう。

※ 上記が唯一の方法ではありませんので、もっと手際よくもできると思いますが、比較的わかりやすい手順ではないかと思いましたので。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
ファイルXのシート1にファイルA~Dをまとめてコピーして貼り付けて、不要な部分を削除したほうが処理が速いのではと考えたのですがうまくできませんでした。

お礼日時:2020/09/26 20:56

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