Excel

エクセルファイルの同じ個所の文字を自動で書き換える

複数あるエクセルファイルの同じ個所にある文字を書き換えたり、同じ個所に同じ文字を入力する場合の方法です。

データが大量にある場合処理が大変です。何度もエクセルファイルを開け、文字を訂正、保存、そして閉じる。

書き換え例

ファイルリンクの絶対パスを相対パスに変更する例です。

対象は赤い枠で囲ったファイルです。

フォルダ内

エクセルファイル「一覧_A001.xlsx」のセルG1のパスを変更します。

  • 変更前:F:¥sample¥ファイル¥
  • 変更後:ファイル¥
一覧_A001.xlsx

サンプルコード

この例では、ファイル保存を定数で指定していますが、このほかにダイアログボックスで指定する方法もあります。

コード

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 でマクロを実行します。

マクロ

最後にメッセージが表示されます。

メッセージ

-Excel
-

© 2021 オフィスのQ&A