チョコミントアイス

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

A 回答 (4件)

お久しぶりです。

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

>よさそうですね。

んーサンプルありますか?(^^ゞ
考えなさーい(>_<)

で、一覧表からファイル開くのはこんな感じかもです。
ざっくり書いたので動くかワカラナイです。
どこにどれを反映させるかは、がんばって作ってくださいね。

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

この回答への補足

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

補足日時:2010/03/01 00:49
    • good
    • 0

一覧表は作れるのですよね?


ならその一覧表のA列に取込判断を入力する様にしておいて
For LoopやDo While等のループで○が付いている行のファイルを
開いて必要な情報を取得していけば良いのではないでしょうか?

取込 ファイル名 フォルダ名
○  AAAAAA.XLS C:\TEMP
   BBBBBB.XLS C:\TEMP
○  CCCCCC.XLS C:\TEMP

この回答への補足

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

補足日時:2010/02/25 19:42
    • good
    • 0

>エクセルファイル名一覧を取得して、ユーザーがそれを複数選択



取り込んだファイル名を何処に表示して、どんな風に選択するのでしょうか?

>そのファイルを選択したものだけ複数自動取り込みたいのですが

自動取り込みって?
エクセルファイルを起動(表示)させるだけでいいの?
何か定型作業があるのかな?

この回答への補足

一ファイル一ヶ月分のデータです。
1月から12月までのファイルをシートごとに取り込みます。
しかし、その部署によって必ず月の順番にファイルが有るわけで無く、
飛び飛びの月ファイルだったりします。

なので今は手動でコピペしてるのをオートで出来るかなと考え中です。。

補足日時:2010/02/25 19:16
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!