[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『フォルダにある全てのブックのセル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.