【マクロVBA】1行のソースコードを複数行のソースコードに置き換える代用方法について

ソースコード

置き換えという機能はエクセル内でもよく使用する機能です。
この機能はマクロVBAのソースコードにも存在しており、ソースコード(プログラム)を
一括で置き換え出来たりととても便利な機能
です。

しかし、一行のソースコードを複数行のソースコードに置き換えたい場合も存在しますよね。

そこで今回は置き換えを使用して1行から複数行の置き換え方法を紹介したいと思います。
実際の画面を用いて説明していますので是非参考にしてみて下さい。

それではみていきましょう。




⬛︎通常のソースコードの置き換え

まず、通常の置き換え方法を見ていきましょう。
visual basicの画面で「ctrl+F」を押します。

すると下図のようなメニュー画面が表示されると思います。

「ctrl+F」以外にも「編集」から「検索」で同様の画面が出てきます。

通常は検索画面になっており、ここで打ち込んだ文字・数値のコードを
検索することができます。

こちらを置き換えのメニュー画面に変更してみましょう。
先程のメニュー画面の右側に「置換」というボタンがあります。

こちらを押していただくと下図のような画面になると思います。

ちなみに「Ctrl+H」でも同様の画面が表示されます。

 

では実際に置き換えてみましょう。

検索する文字列」のところに置き換え前の文字・数値を入力し、
置換後の文字列」のところに置き換え後の文字・数値を入力して
「置換」を押すと文字・数値の置き換えができます。

 

では一例を紹介したいと思います。
今回は見本で「ABC」を「CBA」に変更したいと思います。

まず、検索する文字列に「ABC」を入力し、
置換後の文字列に「CBA」を入力します。

では「置換」を押してみましょう。
結果はこのようになりました。

「ABC」が「CBA」に置き換わっていますね。

 
検索と置き換えについては下記記事で詳しくまとめています☟

【マクロVBA】ソースコードの検索と置き換えについて!カレントプロシージャ・モジュール・プロジェクト ► 独学エクセル塾 (dokugakuexcel.com)

ここまでは通常の置き換え方法を紹介しましたが、ここからは一行から複数行の置き換え方法を見ていきましょう。

⬛︎一行から複数行への置き換え方法

では本題です。
先程は一行の中の指定した文字・数値を置き換えましたが
今回は一行から複数行の置き換え方法を見ていきましょう。

通常、複数行への置き換えをすることはできません。
しかし、似たようなコードを作成することは可能です。

先程のプログラムを例に見ていきましょう。

Sub 置き換え見本()

Range(“A1”) = “ABC”

End Sub

今回は「A1」に「ABC」を入力するプログラムですが、
「A1」に「A」、「B1」に「B」、「C1」に「C」を入力するプログラムにしてみましょう。

狙いの動作を可能にするプロシージャは下記の通りです。

Sub 置き換え見本()

Range(“A1”) = “A”
Range(“B1”) = “B”
Range(“C1”) = “C”

End Sub

しかし変更後は3行なので置き換えができませんよね。
そこで使用するのが「:(コロン)」になります。

「:(コロン)」は複数行のプログラムを1行にまとめる機能があります。
「:(コロン)」についての詳しい解説は下記記事を参考にしてください。

【マクロVBA】複数行のソースコードを1行・小数行にまとめて短縮する!:(コロン)の活用について ► 独学エクセル塾 (dokugakuexcel.com)

こちらを使用して3行のソースコードを1行にして置き換えます。

 

それでは置き換えてみましょう。
「検索する文字列」は「”ABC”」で、
「置換後の文字列」は「“A”:Range(“B1”) = “B”:Range(“C1”) = “C”」のようになります。

実行するとこのようになります。

1行を3行分のソースコードに置き換えることができました。
コードは長くなってしまいますが、置き換えの対象が多い場合には便利ですね。

⬛︎公式の説明

わかりやすいように説明したため公式と使用する語句が異なりますが
マイクロソフト公式の説明については下記のリンクを参照してください。☟

コード内のテキストを置き換える (VBA) | Microsoft Learn

⬛︎まとめ

いかがだったでしょうか。
ソースコードが多ければ多いほど
置き換えの方法は役に立ってきます。

さらに複数行へ置き換えることができたら
作業の効率化につながってきます。

是非参考にしてみてください。
それでは次回の記事でお会いしましょう。

コメント