トップ > 汎用コード > 複数の単語を一括置換(指定フォルダの全ブック対象)

複数の単語を一括置換(指定フォルダ内全ブック対象)

指定したフォルダ内の全ブック・全シートを対象に、複数の文字列を一括で置換するマクロです。
マクロを実行すると、フォルダ参照ダイアログが表示されます。
フォルダを選択すると、そのフォルダ内の全ブック・全シートに置換処理が実行されます。




マクロ実行後に「元に戻す」機能は使用できません。

コードの貼り付け場所

サンプルコード

'///宣言セクション
Dim varSearch As Variant, varAfRepl As Variant
'///

Sub All_Books_Replace() '実行用マクロ フォルダ内全てのブックを対象に検索と置換実行 '要素毎に対 【例】神田川→神奈川、チーバ→千葉、君→さん varSearch = Array("神田川", "チーバ", "君") '検索文字列 varAfRepl = Array("神奈川", "千葉", "さん") '置換文字列 Dim strDirPath As String 'フォルダの選択 With Application.FileDialog(msoFileDialogFolderPicker) If .Show = True Then strDirPath = .SelectedItems(1) End With If Len(strDirPath) = 0 Then Exit Sub 'フォルダの存在確認 If Dir(strDirPath, vbDirectory) = "" Then Exit Sub 'フォルダ内ブック検索・置換処理 Call Search_Books(strDirPath) End Sub
Private Sub Search_Books(ByVal strPath As String) 'フォルダ内ブック検索 Dim strTarget As String, strDirPath As String With Application strPath = strPath & .PathSeparator 'フォルダパスにフォルダ区切り文字追加 strTarget = Dir(strPath & "*.xls?") 'フォルダ内のExcelブックを検索 If strTarget = "" Then Exit Sub 'ブックがなければ終了 .ScreenUpdating = False '画面更新停止 .DisplayAlerts = False '確認メッセージ非表示 On Error Resume Next Do Call Books_Replace_Main(.Workbooks.Open(strPath & strTarget)) 'ブックを開き置換処理 strTarget = Dir() '次のExcelブックを検索 Loop Until strTarget = "" 'ブックがなければループから抜ける On Error GoTo 0 .DisplayAlerts = True .ScreenUpdating = True End With strTarget = Dir("") End Sub
Private Sub Books_Replace_Main(WB As Workbook) 'ブック内全シートの置換処理 Dim Sh As Worksheet, i As Long With WB For Each Sh In .Worksheets For i = LBound(varSearch) To UBound(varSearch) Sh.Cells.Replace varSearch(i), varAfRepl(i), xlPart Next Next If .Saved = False Then .Save 'ブックの内容が変更されていたらセーブ .Close 'ブックを閉じる End With End Sub

「検索文字列」
 シート内から検索する文字列です。

「置換文字列」
 検索した文字列を置き換える文字列です。

検索文字列と置換文字列は要素が対になっています。
要素が対であれば、要素の増減が可能です。

ページトップへ戻る

Excel 汎用コード

Word 汎用コード

Copyright(C) 2009- 坂江 保 All Rights Reserved.