- ベストアンサー
エクセルのマクロについてお尋ねします。
エクセルのマクロについてお尋ねします。 あるフォルダの中のエクセルファイル名一覧を取得して、ユーザーがそれを複数選択し そのファイルを選択したものだけ複数自動取り込みたいのですが、ファイル一覧の取得はできそうなのですが、その先どうしたらいいでしょうか?
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
お久しぶりです。No2,3です。 If .Cells(i, 2) = "" Then Exit Do End ↑ごめんなさい、End If です。;; もう一箇所あるので気をつけてくださいまし。
その他の回答 (3)
- mo2yakko
- ベストアンサー率54% (30/55)
>よさそうですね。んーサンプルありますか?(^^ゞ 考えなさーい(>_<) で、一覧表からファイル開くのはこんな感じかもです。 ざっくり書いたので動くかワカラナイです。 どこにどれを反映させるかは、がんばって作ってくださいね。 Sub Macro1() Dim i As Integer Dim DataBook As Workbook Dim OutputBook As Workbook '出力先ファイルをオープン Workbooks.Open Filename:="C:\TEMP\出力ファイル.xls" Set OutputBook = ActiveWorkbook With ThisWorkbook.Sheets("一覧シート") '一覧表は2行目ってことで・・・ i = 2 Do 'ファイル名が空白なら抜けちゃう If .Cells(i, 2) = "" Then Exit Do End '○だったら開く If .Cells(i, 1) = "○" Then 'ファイルオープン(読み取り専用で Workbooks.Open Filename:=.Cells(i, 3) & "\" & .Cells(i, 2), ReadOnly:=True Set DataBook = ActiveWorkbook '↓データ取込部分はガンバって作ってね。 OutputBook.Sheets("XXX").Cells(1, 1) = DataBook.Sheets("YYY").Cells(1, 1) 'ファイルクローズ DataBook.Close SaveChanges:=False End Loop End With End Sub
- mo2yakko
- ベストアンサー率54% (30/55)
一覧表は作れるのですよね? ならその一覧表のA列に取込判断を入力する様にしておいて For LoopやDo While等のループで○が付いている行のファイルを 開いて必要な情報を取得していけば良いのではないでしょうか? 取込 ファイル名 フォルダ名 ○ AAAAAA.XLS C:\TEMP BBBBBB.XLS C:\TEMP ○ CCCCCC.XLS C:\TEMP
補足
なるほど、取り込みの所をシート名を入力して、そのシートにコピペできるようにすれば よさそうですね。んーサンプルありますか?(^^ゞ
- hana-hana3
- ベストアンサー率31% (4940/15541)
>エクセルファイル名一覧を取得して、ユーザーがそれを複数選択 取り込んだファイル名を何処に表示して、どんな風に選択するのでしょうか? >そのファイルを選択したものだけ複数自動取り込みたいのですが 自動取り込みって? エクセルファイルを起動(表示)させるだけでいいの? 何か定型作業があるのかな?
補足
一ファイル一ヶ月分のデータです。 1月から12月までのファイルをシートごとに取り込みます。 しかし、その部署によって必ず月の順番にファイルが有るわけで無く、 飛び飛びの月ファイルだったりします。 なので今は手動でコピペしてるのをオートで出来るかなと考え中です。。
補足
有難うございます。上記をマクロに張り付けてみましたが、LOOPに対応するDOがありませんと出ました。 少し考えてみます。