[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『Bookを繰り返し開く』(タカポン)
いつもお世話になります。 今、"テスト"フォルダのブックを一つ開きマクロ処理をして保存、 そして次のブックを、という事をしようとしてます。 が、最初のブックを一つずつ開く段階でつまずいています。
ChDir "C:\My Documents\テスト"
Dim wb As Workbook
For Each wb In Workbooks
Workbooks.Open Filename:="wb.name.xls"
Next
というのを作ってみましたが、当然のように動きません。 ファイルの操作は初めてで、知識不足は承知しておりますが、 なにかヒントでもいただけないでしょうか。
INAさんのコードを参考にしてください。Dir関数と Do Loopステートメントの組み合わせ。 [[20050324161946]] 『指定したフォルダのファイルリストを作りたい』(HIDE) [[20030926144507]] 『フォルダにある全てのブックのセルA1を1に』(りん) Note: WorkBooksコレクションはすでに開いている複数のブックを指します。 ChDirでカレントフォルダを移動しても、そのフォルダに保存されたブックが Workbooksコレクションになるわけではありません。 (みやほりん)(-_∂)b
昨日使ったやつですが...。 (Jaka)
Sub main()
Dim FoldNm As String, Ct As Long, FNM As Variant, EndRow As Long
Dim WB As Workbook, EDR As Long, WSh As Worksheet
FoldNm = FoldGet
If FoldNm = "" Then Exit Sub
Application.ScreenUpdating = False
For Each FNM In CreateObject("Scripting.FileSystemObject").GetFolder(FoldNm).Files
If Right(FNM.Name, 3) = "xls" And InStr(1, FNM.Name, "○") = 0 Then
Set WB = Workbooks.Open(FNM)
For Each WSh In WB.Sheets
'この辺が、メインのマクロになる?
MsgBox WSh.Name
Next
WB.Close (False) '開いたブックを保存しないで閉じる
Set WB = Nothing
End If
Next
Application.ScreenUpdating = True
End Sub
Function FoldGet() As String
Dim CrObj As Object
Set CrObj = CreateObject("Shell.Application"). _
Browseforfolder(0, "フォルダを選択してください", 0)
If Not CrObj Is Nothing Then
FoldGet = CrObj.self.Path
End If
DoEvents
Set CrObj = Nothing
End Function
みやほりん様有難うございます。 Dir関数は名前だけ薄々知っているレベルでした。 今の知識で質問するのは気が引けたのですが、訊いてよかったです。 INA様のコードを参考に作れそうです。
Jaka様有難うございます。 小一時間少しでも理解しようとしたのですが無理でした。 勉強せよと教材をいただいたと考え、解読できるよう頑張りたいと思います。 ファイルの操作はやはり複雑なのですね。
みやほりん様、Jaka様、そして過去ログの皆様方本当に有難うございました。
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.