[[20030926144507]] 『フォルダにある全てのブックのセルA1を1に』(りん) ページの最後に飛ぶ

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

 

『フォルダにある全てのブックのセルA1を1に』(りん)

あるフォルダにある全てのエクセルのファイルのセルA1の値を1にする。

     
あるフォルダ(C:\Documents and Settings\rin\My Documents)に複数のエクセルファイルが
あるとします。このとき、sheet1のセルのA1を全て1という値に換えて同じ名前で保存したいのです(実際にはもう少し実務的な内容ですが、その辺は省略します)

過去ログより、以下のように作ってみました。が・・・無限ループにはまってしまいました(泣)
そもそも、 Dir も理解できずに使っているところが問題なのですが、どうやったら上手くいくでしょうか?
どの辺りがまずかったのかご教授頂けるとありがたいです。よろしくお願いします。

Sub DirTest3()

        Dim my_path As String, my_book As String, book_path As String

        my_path = "C:\Documents and Settings\rin\My Documents"
        my_book = Dir(my_path & "\*.xls")

        Do While my_book <> ""
          book_path = my_path & "\" & my_book
          Workbooks.Open Filename:=book_path

          Sheets(1).Select
    Cells(1,1).Value =1 
          ActiveWorkbook.SaveAs Filename:=book_path
          my_book = Dir

        Loop

End Sub


 my_book = Dir を my_book = Dir() にしてもだめでしょうか  (りな)


 衝突してしまいました。

 ざっと見たところ問題はなく、一応動きますが、

 ActiveWorkbook.SaveAs Filename:=book_path
 は
 ActiveWorkbook.SaveAs Filename:=my_book

 にしないと毎回すでに存在するけど良いのかいちいち聞いてきます。
 (kazu)


 私が使っているコードをすこし編集してみました。
 参考にして下さい。 

 Dim ファイル As String
 Dim 一覧 As String
 Dim Result As Long
 Dim myPath As String

 myPath = "C:\Documents and Settings\rin\My Documents\"

 Application.ScreenUpdating = False

    ファイル = Dir(myPath & "*.xls")

    Do While ファイル <> ""
        If ファイル = ThisWorkbook.Name Then ファイル = ""
        一覧 = 一覧 & Chr(13) & ファイル
        ファイル = Dir()
    Loop

  Result = MsgBox("以下のファイルが見つかりました。実行しますか?" & Chr(13) & 一覧, 4, "ファイル確認")

  If Result = 7 Then
    Exit Sub
  End If

 '#################
 '     処 理
 '#################
 ファイル = Dir(myPath & "*.xls")

  Do While ファイル <> ""
    If ファイル <> ThisWorkbook.Name Then
        'ファイルを開く
        Workbooks.Open Filename:=myPath & ファイル

        '1を代入
        ActiveWorkbook.Worksheets("sheet1").Range("A1").Value = 1

        'ファイルを閉じる
        ActiveWorkbook.Close True
    End If
    ファイル = Dir()
  Loop

 Application.ScreenUpdating = True

    (INA)


皆さん、ありがとうございました。無事動きました。
INA さんのは(私には)高度すぎて、とりあえず「目標」とさせてください(^-^)

また勉強して分からなかったらもう一度お世話になると思います。そのときはまたよろしくお願いします。(りん)


コメント返信:

[ 一覧(最新更新順) ]


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