VBAマクロのCommandButton1_Clickの仕組みを徹底解説

Visual Basic

このVBAマクロは、Wordで複数の文書ファイル内の文字列を一括で検索・置換するために作られています。CommandButton1をクリックした際に実行され、ユーザーにファイル選択と置換文字列入力を促し、処理結果を保存して閉じます。

マクロの基本構造

Sub CommandButton1_Click()はボタンクリック時に実行されるサブルーチンの宣言です。End Subで終了します。

サブルーチン内では、ファイル選択ダイアログ、文字列入力、文書の開閉、検索・置換といった一連の処理が順に実行されます。

変数宣言と初期化

Dim xFileDialog As FileDialogはファイル選択ダイアログ用の変数、GetStr(1 To 100) As Stringは選択したファイルパスを格納する配列、xFindStrxReplaceStrは検索・置換文字列を保持します。

xDoc As Documentは開くWord文書を参照する変数です。On Error Resume Nextはエラーが発生しても処理を継続する設定です。

ファイル選択処理

Set xFileDialog = Application.FileDialog(msoFileDialogFilePicker)でファイル選択ダイアログを作成します。.Filters.Clear.Filters.Addで選択可能なファイルタイプを設定し、.AllowMultiSelect = Trueで複数選択を許可します。

If .Show = -1 ThenでユーザーがOKを押した場合、For Each stiSelectedItem In .SelectedItemsで選択された各ファイルパスを配列に格納します。

検索・置換文字列の入力

xFindStr = InputBox("Find what:", "Kutools for Word", xFindStr)xReplaceStr = InputBox("Replace with:", "Kutools for Word", xReplaceStr)で、ユーザーから検索文字列と置換文字列を入力してもらいます。

文書の開閉と検索・置換

For j = 1 To i Step 1で選択された各文書を順に処理します。Documents.Openで文書を開き、Windows(GetStr(j)).Activateでアクティブにします。

検索・置換はSelection.Findオブジェクトで行います。.Textに検索文字列、.Replacement.Textに置換文字列を設定し、Selection.Find.Execute Replace:=wdReplaceAllで全て置換します。処理後はActiveDocument.Saveで保存し、ActiveWindow.Closeで閉じます。

画面更新の制御と終了メッセージ

Application.ScreenUpdating = Falseで処理中の画面更新を停止し、最後にApplication.ScreenUpdating = Trueで元に戻します。処理完了後にMsgBox "Operation end, please view", vbInformationでユーザーに完了を通知します。

まとめ

このマクロは、ユーザーが複数のWord文書を選択し、一括で文字列を検索・置換する便利な機能を提供します。変数宣言、ファイル選択、文字列入力、検索・置換、保存・閉じる、画面更新制御、完了メッセージといった各ステップが明確に設計されており、VBAの基本構造やWord操作の流れを理解するのに役立ちます。

コメント

タイトルとURLをコピーしました