• ベストアンサー

エクセルのマクロについてお尋ねします。

エクセルのマクロについてお尋ねします。 あるフォルダの中のエクセルファイル名一覧を取得して、ユーザーがそれを複数選択し そのファイルを選択したものだけ複数自動取り込みたいのですが、ファイル一覧の取得はできそうなのですが、その先どうしたらいいでしょうか?

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

  • ベストアンサー
  • mo2yakko
  • ベストアンサー率54% (30/55)
回答No.4

お久しぶりです。No2,3です。 If .Cells(i, 2) = "" Then   Exit Do End ↑ごめんなさい、End If です。;; もう一箇所あるので気をつけてくださいまし。

その他の回答 (3)

  • mo2yakko
  • ベストアンサー率54% (30/55)
回答No.3

>よさそうですね。んーサンプルありますか?(^^ゞ 考えなさーい(>_<) で、一覧表からファイル開くのはこんな感じかもです。 ざっくり書いたので動くかワカラナイです。 どこにどれを反映させるかは、がんばって作ってくださいね。 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

devid
質問者

補足

有難うございます。上記をマクロに張り付けてみましたが、LOOPに対応するDOがありませんと出ました。 少し考えてみます。

  • mo2yakko
  • ベストアンサー率54% (30/55)
回答No.2

一覧表は作れるのですよね? ならその一覧表のA列に取込判断を入力する様にしておいて For LoopやDo While等のループで○が付いている行のファイルを 開いて必要な情報を取得していけば良いのではないでしょうか? 取込 ファイル名 フォルダ名 ○  AAAAAA.XLS C:\TEMP    BBBBBB.XLS C:\TEMP ○  CCCCCC.XLS C:\TEMP

devid
質問者

補足

なるほど、取り込みの所をシート名を入力して、そのシートにコピペできるようにすれば よさそうですね。んーサンプルありますか?(^^ゞ

  • hana-hana3
  • ベストアンサー率31% (4940/15541)
回答No.1

>エクセルファイル名一覧を取得して、ユーザーがそれを複数選択 取り込んだファイル名を何処に表示して、どんな風に選択するのでしょうか? >そのファイルを選択したものだけ複数自動取り込みたいのですが 自動取り込みって? エクセルファイルを起動(表示)させるだけでいいの? 何か定型作業があるのかな?

devid
質問者

補足

一ファイル一ヶ月分のデータです。 1月から12月までのファイルをシートごとに取り込みます。 しかし、その部署によって必ず月の順番にファイルが有るわけで無く、 飛び飛びの月ファイルだったりします。 なので今は手動でコピペしてるのをオートで出来るかなと考え中です。。