[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『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.