[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『既存のVBAの処理を「先頭シート」から「全てのシート」に変更する方法』(ひかり)
社内で使用している下記のVBAの処理を変更したいのですが、
上手くいかず、是非お力を拝借できれば幸いです。
「下記のVBA入りブック以外の、フォルダ内全てのブックの指定したセルに値を追加する」
というものなのですが、これですと1シート目しか追加する事ができません。
一部を書き換えて、「下記のVBA入りブック以外の、フォルダ内全てのブックの"全てのシート"の指定したセルに値を追加する」に変更できませんでしょうか。
説明が下手で大変申し訳ございません。
Sub 指定セル一括入力()
'==変数の宣言など
Dim Myfile As String, Filepath As String '==処理 Filepath = ThisWorkbook.Path & "\" Myfile = Dir(Filepath & "*.xls?") Application.ScreenUpdating = False '画面更新停止 Do While Myfile <> "" If Not Myfile = ThisWorkbook.Name Then With Workbooks.Open(Filename:=Filepath & Myfile) .Worksheets(1).Cells(1, 4).Value = "テスト" .Save .Close End With End If Myfile = Dir() Loop Application.ScreenUpdating = True '画面更新再開 MsgBox "処理完了" End Sub
是非宜しくお願い致します。
< 使用 Excel:Excel2010、使用 OS:Windows10 >
重要なのはココね
For Each SH In .Worksheets SH.Cells(1, 4).Value = "テスト" Next
全文
Sub 指定セル一括入力() '==変数の宣言など Dim Myfile As String, Filepath As String Dim SH As Worksheet '==処理 Filepath = ThisWorkbook.Path & "\" Myfile = Dir(Filepath & "*.xls?") Application.ScreenUpdating = False '画面更新停止 Do While Myfile <> "" If Not Myfile = ThisWorkbook.Name Then With Workbooks.Open(Filename:=Filepath & Myfile) For Each SH In .Worksheets SH.Cells(1, 4).Value = "テスト" Next .Save .Close End With End If Myfile = Dir() Loop Application.ScreenUpdating = True '画面更新再開 MsgBox "処理完了" End Sub
場合によっては
Application.DisplayAlerts = False / True も入れたほうが良い気がする
(名無し) 2019/01/12(土) 19:35
早速試した所、希望通りの処理がされておりました。
とても助かりました、ありがとうございます。
For Each Nextを使うというのは何となくわかったのですが、どこに入れればいいのかさっぱりでした。
今後共是非宜しくお願い致します。
(ひかり) 2019/01/13(日) 16:30
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.