お詳しい方よろしくお願いします。
<状況>
(1)ファイル名が「001.xlsx」から「100.xlsx」まで100個のエクセルファイルがあります。
(2)これら100個のファイルそれぞれのA1セルに入力したいデータが入力されたエクセルファイル(集約データ.xlsx)があります。
集約ファイル.xlsxの内容
A列 B列
1 001 平成21年4月から平成21年5月まで
2 002 平成21年7月から平成21年12月まで
3 003 平成21年4月から平成21年10月まで
・
・
というように、A列にはデータ出力先エクセルファイル名
B列には、A列に入力されたエクセルファイルのA1セルに出力したいデータが格納されています。
<行いたい作業>
集約データ.xlsxのB列に格納してあるデータをA列のファイルに出力したいと考えています。
ついては、この方法をご教示いただきたいと存じます。
よろしくお願いします。
No.1ベストアンサー
- 回答日時:
.xlsxということは2007以降ですね。
わたしのは2003なので2007で動くかどうか自信ありません。
また質問を勘違いしたかも知れませんが以下の前提で回答します。
1.VBAコードは集約データ.xlsx の標準モジュールに記載する。
2.集約ファイル.xlsxの内容は一枚目のシートのA1:B100の範囲にある。
3.集約ファイル.xlsxおよび「001.xlsx」から「100.xlsx」まで100個のエクセルファイルは同一フォルダー内にある。
4.転記先のA1セルは開いたときに表示されるシートにある。
Sub TEST01()
Dim mb As Workbook, wb As Workbook
Dim myFd As String
Application.ScreenUpdating = False '画面更新を一時停止
Set mb = ThisWorkbook 'このBookをmbとする。
myFd = mb.Path 'フォルダー名取得
For i = 1 To 3 '1から100まで
Set wb = Workbooks.Open(myFd & "\" & mb.Sheets(1).Cells(i, "A").Value & ".xlsx") 'その名のBOOKを開きwbとする。
wb.ActiveSheet.Range("A1").Value = mb.Sheets(1).Cells(i, "B").Value '開いたシートのA1に転記
wb.Close (True) '保存の有無を聞かずに保存して閉じる
Next '繰り返し
Application.ScreenUpdating = True '画面更新一時停止を解除
End Sub
どうもありがとうございました。
ご教示いただいたコードで無事処理できました。
作業時間が大幅に短縮できました。
これまでは、縁遠く、なじめなかったマクロですが、ご教示いただいたのきっかけに一念発起し、現在テキストで勉強しているところです。
本当にありがとうございました。
No.2
- 回答日時:
おはようございます。
昨夜回答したmerlionXXです。さきほどExcel2007で試してみました。
No1で回答のコードで作動を確認しました。
ただ、もうおわかりとは思いますが、コードで
For i = 1 To 3 '1から100まで
の部分については、わたしは実際には100個のファイルではなく001~003の3つのファイルで試したのでFor i = 1 To 3 としてますが、ほんとに100個までなら 1 To 100 としなくてはいけません。
また、このコードを書いた「集約データ.xlsx」 は、コードを保持したまま保存することができませんでした。
マクロをふくんだまま保存するには「集約データ.xlsm」 と拡張子を変更しなければなりませんでした。
この点、2007をあまり使ったことがなかったので勉強になりました。
以上蛇足でした。
お忙しい中何度もご回答いただきありがとうございます。
土、日は作業ができなかったので、これから実施してみます。
(今日中に終わるかな?という感じですが)
実は、マクロ(VBAコードの作成(?))はまったくの初心者でして…
引き続きご教示いただくかもしれませんが、よろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 【VBA】指定フォルダに格納中のテキストファイルをエクセルで処理し結果のエクセルを新規フォルダに保存 1 2022/03/25 14:19
- Visual Basic(VBA) Excelのマクロについて教えてください。 1 2023/03/12 12:16
- Excel(エクセル) エクセルのマクロについて教えてください。 3 2023/02/07 14:47
- Excel(エクセル) VBA ふたつの同じ様式シートのセルをコピーしたい 2 2023/03/08 15:28
- Visual Basic(VBA) VBA 毎日取得するデータを順番に反映していく方法 6 2023/08/26 16:22
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/03 11:27
- Excel(エクセル) マクロか関数で処理したいのですが、教えて頂けませんか。 8 2022/10/31 15:18
- Excel(エクセル) フォルダ内のエクセルファイルを開かずにデータ採取する関数式 2 2022/12/22 22:15
- Excel(エクセル) エクセルでSUMIFS関数で条件範囲の部分が#valueになる。 4 2023/04/28 12:42
- Excel(エクセル) 【困っています】VBA 追加処理の記述を教えてください。 1 2022/08/25 22:54
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
複数のcsvファイルを1つのEXCEL...
-
複数のCSVファイルを横に並べて...
-
excelインポート時の「実行時エ...
-
複数の同じ様式のエクセルデー...
-
エクセルの指数を無効にしたい
-
「ほかのアプリケーションを無...
-
二つのCSVファイルを照らし合わ...
-
VBAでCSVの1行目だけを書き換え...
-
破損したExcelファイルの内容を...
-
大量のCSVデータを1つのエ...
-
複数のデータ系列の線の太さを...
-
フォルダ内の全ブックのシート...
-
Excelマクロ ファイル名が変わ...
-
ファイル名を今日の日付、時刻...
-
エクセルでツールバーに「縮小...
-
エクセル終了時の保存確認メッ...
-
【ExcelVBA】クエリの更新とピ...
-
excelファイルに使われているVB...
-
Powerpointでランダムな数字の...
-
Excelからnotesメールを自動で...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
複数のCSVファイルを横に並べて...
-
エクセルの指数を無効にしたい
-
excelインポート時の「実行時エ...
-
VBAでCSVの1行目だけを書き換え...
-
大量のCSVデータを1つのエ...
-
EXCELにcsv形式の外部データを...
-
CSVファイルの結合(重複データ...
-
Excel VBAを使った複数のCSVフ...
-
複数のcsvファイルを1つのEXCEL...
-
「ほかのアプリケーションを無...
-
二つのCSVファイルを照らし合わ...
-
EXCELLの動きが遅い
-
同じ形のCSVファイルを複数同時...
-
datファイル→csvファイル→datフ...
-
【VBA初心者】同じフォルダ内の...
-
VBAでユーザーフォーム上に参照...
-
複数個のascファイルを1つ...
-
【エクセル VBA】CSVファイルの...
-
破損したExcelファイルの内容を...
-
エクセルファイルのコンペア
おすすめ情報