プロが教える店舗&オフィスのセキュリティ対策術

特定フォルダ内にエクセルのファイルが複数あります。
エクセルのファイル名の取得は「Filesearch」を使い取得出来ました。

更にそのファイルの中にあるシート名を取得し、シート名の一覧を
ワークシートに貼り付けたいと考えています。

よろしくご教授ください。

A 回答 (3件)

過去スレが残っていましたので紹介します。


A1セルに特定のフォルダのパスを入れておきます。

Sub Sample1()
Dim buf As String, i As Long
Dim j As Long
buf = Dir(Range("A1").Value & "\*.xls")
Do While buf <> ""
i = i + 1
Workbooks.Open Worksheets(1).Range("A1").Value & "\" & buf
ThisWorkbook.Worksheets(1).Cells(i + 1, 1).Value = buf
For j = 1 To Worksheets.Count
ThisWorkbook.Worksheets(1).Cells(i + 1, j + 1) = Sheets(j).Name
Workbooks(buf).Activate
Next
Workbooks(buf).Close SaveChanges:=False
buf = Dir()
Loop
End Sub
で試してみてください。
    • good
    • 0
この回答へのお礼

返事が遅くなり申し訳ありませんでした。
ありがとうございました!
出来ました。

お礼日時:2008/10/22 07:35

ANo.2で、hallo-2007さんが提示されたコードではシートに書き出しているようです。


アレンジして流用すればどうでしょうか。(そのためにはコードを解読しなければなりません。)
>エクセルのファイル名の取得は「Filesearch」を使い取得出来ました。
上記内容がお出来になる方ですから、大丈夫だと思います。
トライして、解らない、うまくいかない、ということなら、試しているコードを提示してみてください。

教えてもらったマクロを動かすことが「出来ました。」ではなく、「理解ができました。」にしてください。
偉そうなことを言って済みません。
    • good
    • 1

下記でシート名(グラフシート含む)が取れます。



Sub testシート名取得()
  Dim appobj As Object
  Dim sht As Object

  Set appobj = GetObject("C:\Exceldata\ABC.xls")
  For Each sht In appobj.Sheets
    MsgBox sht.Name
  Next
  Set appobj = Nothing
End Sub

この回答への補足

返事が遅くなりまして申し訳ありません。
ありがとうございます。
甘えてしまうようですがもう一点教えてください。
msgboxですとそれぞれOKを押さないと表示されませんが
ワークシートに書き出すにはどのようにすれば
よろしいのでしょうか?

教えていただいておいて失礼とは思いますがご教授ください。

補足日時:2008/10/22 07:39
    • good
    • 1

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