[[20220614105238]] 『VBA フォルダ内のブックに同じ処理を行う』(ふふ) ページの最後に飛ぶ

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

 

『VBA フォルダ内のブックに同じ処理を行う』(ふふ)

フォルダ内のブックに同じ処理をさせるVBAを試しに書こうとしたのですが、
なぜか実行しても何も起きません。
どうしてでしょうか?

全てのブックに『Hello!』と入力されるものを書いているつもりでしたが、、、

VBAに詳しい方、どうかご教授願います。m(_ _)m

Sub Sample()

    Dim Path As String
    Dim Book As String

    Path = "C:\Users\fu\Desktop\☆★エクセル★☆ \VBA 試しフォルダ"
    Book = Dir(Path & "*.xlsx")

    Do While Book <> ""
        Workbooks.Open Path & Book

        Cells(1.1).Value = "Hello!"

        ActiveWorkbook.Save
        ActiveWorkbook.Close

        Book = Dir()
    Loop
End Sub

< 使用 Excel:Excel2019、使用 OS:Windows10 >


>なぜか実行しても何も起きません。

「C:\Users\fu\Desktop」フォルダに、
「☆★エクセル★☆ \VBA 試しフォルダ*.xlsx」というファイルが存在しないからでしょう。

(わからん) 2022/06/14(火) 11:06


 被りますが。

 Pathの最後の「\」が抜けてるから。
(通りすがり) 2022/06/14(火) 11:08

 >    ActiveWorkbook.Save
 >    ActiveWorkbook.Close

 ループの中に入ってますが大丈夫でしょうか?
 一つ目で閉じちゃいますよ。
(通りすがり) 2022/06/14(火) 11:13

 ↑ループの中でないとダメでしたね。
 スルー願います。
(通りすがり) 2022/06/14(火) 11:14

 ブックオブジェクト、ワークシートオブジェクトを
 変数で宣言して処理する方法です。
 ※コードの一部のみ

 ’変数宣言部
  Dim wb As Workbook
  Dim ws As Worksheet

  'ループの中
    Set wb = Workbooks.Open(Path & Book)
    Set ws = wb.Worksheets(1)
    wsCells(1.1).Value = "Hello!"
    wb.Close SaveChanges:=True
    Set ws = Nothing
    Set wb = Nothing
(通りすがり) 2022/06/14(火) 11:22

 > wsCells(1.1).Value = "Hello!"

 ↓の間違いでした。

 ws.Cells(1.1).Value = "Hello!"

(通りすがり) 2022/06/14(火) 11:23


無事に解決しました。
ありがとうございました!!
(ふふ) 2022/06/14(火) 11:37

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.