- ベストアンサー
Excelマクロの記述方法について
- Excelマクロの記述方法についてお尋ねします。以下の要件に基づいて、フォルダ内の複数のExcelファイルに対して特定の処理を実行するマクロを作成したいです。具体的には、AAA.xls、BBB.xls、CCC.xlsなどのファイルを指定のフォーマットに合わせて貼り付けたいのですが、具体的な記述方法が分かりません。お手数ですが、ご教示いただけますでしょうか?
- Excelマクロの記述についてお伺いします。特定のフォルダ内に複数のExcelファイルがあり、それぞれのファイルに対して特定の処理を行いたいと考えています。具体的には、各ファイルの特定の列を選択し、別のExcelファイルに貼り付けたいのですが、どのように記述すれば良いのか分かりません。お知恵をお貸しください。
- Excelマクロについて質問があります。指定のフォルダ内に複数のExcelファイルがあり、それぞれのファイルに対して特定の処理を行いたいです。具体的には、各ファイルの特定の列を選択し、別のExcelファイルに貼り付ける処理を自動化したいですが、どのように書けば良いのか分かりません。ご教示いただけますでしょうか?
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
段取り: フォーマット.xlsにマクロを登録して実行し、データを吸い上げることにする フォーマットと他のブックは同じフォルダに放り込んでおくことにする 各ブックの「ある列」じゃ話にならないので、とりあえず「A列」を吸い上げることにする 原則として「どのブックから」取ってきたのを「どの列に」配置するか「指定は無い」事にする 例えばF列に転記されたデータが「実際にどこから取ってきたモノだったのか」の情報は「別に要らない」ご相談になっていますが、それじゃあんまり使いにくいので1行目にファイル名を記録し、2行目からデータを転記する事にする(余計なお世話なので、不要なら適切にマクロを修正してください) 手順: フォーマット.xlsを開く ALT+F11を押す 現れた画面で挿入メニューから標準モジュールを挿入する 現れたシートに下記をコピー貼り付ける sub macro1() dim myPath as string dim myFile as string dim c as long dim LastRowr as long application.screenupdating = false mypath = thisworkbook.path & "\" myfile = dir(mypath & "*.xls") range("F:IV").delete shift:=xlshifttoleft c = 6 do until myfile = "" if myfile <> thisworkbook.name then workbooks.open filename:= mypath & myfile lastrow = worksheets("a").range("A65536").end(xlup).row thisworkbook.worksheets(1).cells(1, c) = myfile thisworkbook.worksheets(1).cells(2, c).resize(lastrow, 1).value = worksheets("a").range("A1").resize(lastrow, 1).value workbooks(myfile).close false c = c + 1 end if myfile = dir() loop application.screenupdating = true end sub ファイルメニューから終了してエクセルに戻る マクロを実行する
お礼
回答有難うございます。 少し削除・追加等しまして、うまく実行できました! あと細かい部分は自分で勉強したいと思います。 大変助かりました。有難うございました。