[[20060912132116]] 『Bookを繰り返し開く』(タカポン) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『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.