- ベストアンサー
エクセルファイルの特定セルに別エクセルファイルのデータを入力する方法
- エクセルファイルの特定セルに別エクセルファイルのデータを入力する方法について、お知りになりたいです。100個のエクセルファイルにそれぞれデータを入力するための集約データファイルがあります。具体的な方法をお教えいただけますか?
- エクセルファイルの特定セルに別エクセルファイルのデータを入力する方法について教えてください。100個のエクセルファイルがありますが、集約データファイルに格納されたデータをそれぞれのファイルに入力したいと思っています。具体的な手順を教えてください。
- 100個のエクセルファイルに別エクセルファイルのデータを入力する方法を教えてください。集約データファイルには入力したいデータが格納されていますが、どのようにしてそれを各ファイルに入力するのか知りたいです。具体的な方法を教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
.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
その他の回答 (1)
- merlionXX
- ベストアンサー率48% (1930/4007)
おはようございます。昨夜回答した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コードの作成(?))はまったくの初心者でして… 引き続きご教示いただくかもしれませんが、よろしくお願いします。
お礼
どうもありがとうございました。 ご教示いただいたコードで無事処理できました。 作業時間が大幅に短縮できました。 これまでは、縁遠く、なじめなかったマクロですが、ご教示いただいたのきっかけに一念発起し、現在テキストで勉強しているところです。 本当にありがとうございました。