普段エクセルで、検索や置き換えの機能を使用している方も多いのでないでしょうが。
対象の文字・数値を検索して、データの場所を確認したり
置き換えで文字・数値を変更したり便利な機能です。
この、検索・置き換えの機能ですがマクロVBAのソースコードでも
同様の機能を使用することができます。
さらにブック内のプロジェクト内やモジュール内、プロシージャ内など
対象を絞って検索・置き換えができるので是非参考にしてみてください。
それではみていきましょう。
⬛︎検索をする
まず、検索からみていきましょう。
・検索メニューを表示する
検索するにあたって検索メニューを表示する必要があります。
メニューの表示方法として2通り存在します。
①メニューから表示する
まず、メニューから表示する方法です。
こちらはメニュー内の「編集」から「検索」を選択します。
②ショートカットキーを使用する
こちらの方が簡単に表示させることができます。
方法としてキーボードの「Ctrl」と「F」を同時押しすると表示させることができます。
では実際に検索してみましょう。
・検索する
まず検索したい文字・数値を「検索する文字列」に入力します。
そして「検索」を押すごとに対象の文字・数値を表示してくれます。
見本で下記のソースコードを用意しました。
Sub 置き換え見本()
Range(“A1”) = “ABC”
End Sub
方法として「検索する文字列」に検索したい文字を入力します。
今回は「ABC」を検索してみましょう。
「検索する文字列」に「ABC」を入力して「次を検索」を押してみます。
検査した結果はこのようになります。
「ABC」が選択されていますね。
ほかに「ABC」があった場合は「検索」を押すごとに「ABC」の文字列に位置を合わしてくれます。
これで対象の文字・数値があるか検索できますね。
⬛︎置き換えをする
今度は置き換えの方法をみていきましょう。
・置き換えメニューを表示する
置き換えも検索と同様にメニューを表示させる必要があります。
こちらも2パターンあるのでそれぞれ紹介したいと思います。
①検索メニューから切り替え
まずは先程の検索メニューから置き換えのメニュー画面に変更してみましょう。
検査メニュー画面の右側に「置換」というボタンがあります。
こちらを押していただくと下図のような画面になると思います。
この画面が置き換えのメニュー画面となります。
別の方法としてはメニュー内の「編集」から「置換」を選択しても
同様の画面が表示されます。
②ショートカットキーを使用する
こちらも検索と同様に簡単に表示させることができます。
方法としてキーボードの「Ctrl」と「H」を同時押しすると表示させることができます。
では実際に置き換えしてみましょう。
・置き換えをする
では実際に置き換えてみましょう。
「検索する文字列」のところに置き換え前の文字・数値を入力し、
「置換後の文字列」のところに置き換え後の文字・数値を入力して
「置換」を押すと文字・数値の置き換えができます。
では一例を紹介したいと思います。
今回は見本で「ABC」を「CBA」に変更したいと思います。
まず、「検索する文字列」に「ABC」を入力し、
「置換後の文字列」に「CBA」を入力します。
では「置換」を押してみましょう。
結果はこのようになりました。
「ABC」が「CBA」に置き換わっていますね。
こちらも検索と同様にほかに「ABC」があった場合は「置換」を押すごとに「ABC」を「CBA」に置き換えてくれます。
さらに置換の下にある「すべて置換」を押すと
文字通り、すべての検索に該当する文字列を置き換えてくれます。
⬛︎検索・置き換えの対象を選択する
これまでは通常の検索・置き換えの方法を紹介しました。
しかしソースコードは様々な場所に書き込めますよね。
例えばモジュールの中にも複数のプロシージャを作成できますしモジュール自体も複数追加できます。
そこでどの対象範囲で検索・置き換えするのか選択できるようになってます。
操作するところは検査・置き換えメニューの「対象」になります。
ここでは以下の3つが選択可能です。
・カレントプロシージャ
・カレントモジュール
・カレントプロジェクト
ではそれぞれの範囲を見ていきましょう。
・カレントプロシージャ
こちらは一つのプロシージャの検索・置き換えになります。
一つのプロシージャとは「sub プロシージャ名()」から「End sub」にあたります。
なので一つのプログラム内の検索・置き換えを行います。
検索・置き換えを行う際は対象のプロシージャ内をクリックした後、
検索または置き換えボタンを押すと対象のプロシージャ内での処理となります。
・カレントモジュール
こちらはモジュール内の検索・置き換えを行います。
なのでモジュール内に複数のプロシージャがあるとすると
対象のモジュール内の全てのプロシージャのソースコードが対象になります。
・カレントプロジェクト
こちらは対象ファイル全てのソースコードが対象になります。
モジュールはもちろんのこと、ブック、シートに入力したソースコードが
全て検索・置き換え対象です。
⬛︎公式の説明
わかりやすいように説明したため公式と使用する語句が異なりますが
マイクロソフト公式の説明については下記のリンクを参照してください。☟
コード内のテキストを検索する (VBA) | Microsoft Learn
コード内のテキストを置き換える (VBA) | Microsoft Learn
⬛︎まとめ
いかがだったでしょうか。
検索・置き換えを活用できればプログラミングが
とっても楽になります。
特に一括で置き換えれるのは
ソースコードを変更したいときにはとても便利です。
さらに1行から複数行への置き換えの応用もまとめてますので是非参考にしてみてください。
【マクロVBA】1行のソースコードを複数行のソースコードに置き換える代用方法について ► 独学エクセル塾 (dokugakuexcel.com)
それでは次回の記事でお会いしましょう。