• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:マクロのコピー&ペーストの繰り返し作業について)

マクロのコピー&ペーストで楽々作業!40回の繰り返し方法を解説!

このQ&Aのポイント
  • マクロを使って40回のコピー&ペースト作業を効率化しましょう。元データを新しいエクセルファイルに縦に並べる方法を解説します。
  • マクロを活用して、40種類の異なるデータを一括してコピー&ペーストする方法を紹介します。作業効率を向上させるために、フォルダ内のファイル名を活用しましょう。
  • マクロを利用して、40回の繰り返し作業を簡単に行いましょう。指定したセルに、元データを順番に貼り付ける方法を詳しく解説します。

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

  • ベストアンサー
  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.3

データのコピー元およびコピー先を明確に書いていただいてないので適当に作成しtwみました。 以下の前提です。 元データはすべて同じフォルダ内にあるBOOKの1枚目(一番左)のシート(名前を問わない)のH3セルにある。 あなたがresultと呼んだコピー先のBOOKの1枚目(一番左)のシートのA1セル以降に順番に貼り付ける。 それでよければ以下のマクロをresultと呼んだコピー先のBOOKの標準モジュールに貼り付け、元データと同じフォルダ内に保存してください。 マクロは書いたことは無くとも、標準モジュールに貼り付けるくらいはできるんですよね? Sub TEST01()   Dim myFn As String   Dim i As Long   Dim wb As Workbook '以上変数宣言   Application.ScreenUpdating = False '画面更新一時停止   myFn = Dir(ThisWorkbook.Path & "\*.xls?") 'エクセルBOOK検索   Do While myFn <> "" '対象が存在する限り続行     If myFn <> ThisWorkbook.Name Then 'ファイル名がresultの名と違っていれば       Set wb = Workbooks.Open(ThisWorkbook.Path & "\" & myFn) '開く       i = i + 1 'カウント       wb.Worksheets(1).Range("H3").Copy ThisWorkbook.Worksheets(1).Cells(i, "A") 'コピペ       wb.Close False '閉じる     End If     myFn = Dir() '次検索   Loop '繰り返し   Application.ScreenUpdating = True '画面更新停止解除 End Sub ALT+F8キーでマクロを呼び出し、TEST01を実行してみてください。

ar5eaga
質問者

お礼

わざわざプログラムまで組んでくださって本当にありがとうございます。 こちらのプログラムを用いたことでとてもスムーズに作業が進みました。 本当に感謝しています。

その他の回答 (3)

  • nattocurry
  • ベストアンサー率31% (587/1853)
回答No.4

200回以上繰り返すなら、それも質問文に書くべきでしたね。 そうだとしても、40ファイルを処理するマクロを、200回繰り返すマクロを作ればいいだけです。 それをやるにしても、40ファイルを処理するマクロを作らないと始まりません。 ところで、40ファイルの処理を200回繰り返す、という状況が想像できないのですが・・・ 同じ40ファイルに対して、同じ処理を200回繰り返す? 40ファイル入っているフォルダが200個あって、すべてのフォルダで同じ処理をする? ??? >この場合、1つ目のデータを貼り付けた後に次のデータ貼り付け場所を指定し、ファイルを自動で読み込む方法などはどのようにしたらよいのでしょうか。 ??? それは、 >・マクロの記録を開始して >・data1の1つのファイルを開いて >・H3をコピーして >・resultのA1に貼り付けて >・data1のファイルを閉じて >・マクロの記録を終了する これをやってみた上での質問でしょうか? >ちなみに、VBAマクロは書いたことがないです。 そうなのであれば、まず、マクロの記録のやりかたと、記録したマクロの実行のやり方を覚えましょう。 ネットで検索すればたくさん見つかります。 検索キーワードは excel マクロの記録 実行 こんな感じで良いです。

ar5eaga
質問者

お礼

何度も回答していただいてありがとうございました。 おかげで無事に解決することができました。

  • nattocurry
  • ベストアンサー率31% (587/1853)
回答No.2

40程度なら、 resultシート(のファイル)を開いた状態で、 ・マクロの記録を開始して ・data1の1つのファイルを開いて ・H3をコピーして ・resultのA1に貼り付けて ・data1のファイルを閉じて ・マクロの記録を終了する これで書き込まれたマクロを39回コピペして、読み込むファイル名と、貼り付け先を変更していけば良いです。 40なんてたいした数ではありません。 「すぐに回答してほしい」ほど急ぎなんですよね。 たった40回の繰り返しであれば、繰り返し構文やDir関数を勉強するより早いです。 ましてや、あなたがVBAマクロを書いたことが無かったりしたら、なおさらです。

ar5eaga
質問者

お礼

回答ありがとうございます。 確かに、たった40程度のファイル数なので上記のやり方でも問題ないのですが、 これの作業を200回以上繰り返さなければならないので困っています。 この場合、1つ目のデータを貼り付けた後に次のデータ貼り付け場所を指定し、ファイルを自動で読み込む方法などはどのようにしたらよいのでしょうか。 この方法がわからないのだと書いていなくてすいません。 ちなみに、VBAマクロは書いたことがないです。

  • DIooggooID
  • ベストアンサー率27% (1730/6405)
回答No.1

仮に、ファイル名が、・・・    data1    data2    data3    data4     : ようなネーミングになっていれば、 VBA の for next を使った繰り返しで、ファイル名を生成し 処理することができます。 http://excelvba.pc-users.net/fol6/6_3.html   ※ data + <繰り返しのカウンター値>  しかし、ファイル名がまちまちであると、ファイルの数分の 処理を記載する必要があります。  ただ、ファイル名の一覧を、シート上に、順番に配置しておけば、 上記の for next の繰り返しを使って、ファイル名を生成する代わりに 上から順番に ファイル名を取り出して、処理することは可能です。

参考URL:
http://excelvba.pc-users.net/fol6/6_3.html
ar5eaga
質問者

お礼

回答していただいてありがとうございました。 おかげさまで無事に解決しました。

関連するQ&A