複数あるエクセルファイルの同じ個所にある文字を書き換えたり、同じ個所に同じ文字を入力する場合の方法です。
データが大量にある場合処理が大変です。何度もエクセルファイルを開け、文字を訂正、保存、そして閉じる。
目次
書き換え例
ファイルリンクの絶対パスを相対パスに変更する例です。
対象は赤い枠で囲ったファイルです。
エクセルファイル「一覧_A001.xlsx」のセルG1のパスを変更します。
- 変更前:F:¥sample¥ファイル¥
- 変更後:ファイル¥
サンプルコード
この例では、ファイル保存を定数で指定していますが、このほかにダイアログボックスで指定する方法もあります。
コード
Sub sample() Dim wb As String Const fPath As String = "F:¥sample¥" Const cPath As String = "ファイル¥" wb = Dir(fPath & "一覧_" & "*.xlsx") Application.ScreenUpdating = False Do While wb <> "" Workbooks.Open fPath & wb Worksheets("Sheet1").Cells(1, 7) = cPath With Workbooks(wb) .Save .Close End With wb = Dir() Loop Application.ScreenUpdating = True MsgBox "終了しました" End Sub
説明
3行目:対象のエクセルファイルが保存されているフォルダのパスです。定数で指定しています。
Const fPath As String = “F:¥sample¥”
4行目:エクセルファイルのセルG1に入力するパスを定数で指定しています。
Const cPath As String = “ファイル¥”
6行目:変更するエクセルファイルの指定です。「一覧_」で始まるエクセルファイルを指定しています。
wb = Dir(fPath & “一覧_” & “*.xlsx”)
8行目と20行目:書き換え中は画面の更新を止めます。
Application.ScreenUpdating
10行目~18行目:エクセルファイルを開き、セルG1にパスの入力をして、ファイル保存後に閉じる。
実行方法
「パス変更.xlsm」にコードがあります。
Altキー + F8 でマクロを実行します。
最後にメッセージが表示されます。