VBA
VBAで文字列内変数展開してみる
VBAは文字列内変数展開ができない。
なので普通は & を使って文字列と変数を連結するのだが、どうしても煩雑になりがちだし、コードも読みにくくなる。
なんとかならないかと作ってみたのがこの関数だ。
使い方はこんな感じ。
第1引数が文字列。
文字列内の変数はJavaScriptと同じく「${}」で囲むが、変数名はダミーなので何でもいい。
ただ後のメンテナンス性を考えると、実際の変数名と同じにしておいたほうが良いと思う。
第2引数以降は、文字列内に出現した順で実際の変数を与える。
そうすると、変数を展開した文字列が返ってくる。
これだけだ。
変数は何個でも展開できるが、文字列内の変数と実際の変数の数が合わないとおかしなことになる。(エラーチェックはしていない)
ただ、ループ内でこれを実行するとかなり遅くなってしまうので、この文字列をVBAでそのまま使える文字列に変換するJavaScriptも作ってみた。
以下フォームの「変換元」に「私の名前は${myname}です。年齢は${age}です。」と入力すれば、「"私の名前は" & myname & "です。年齢は" & age & "です。"」に変換してくれる。
あとはVBAソースにコピー&ペーストすればOKだ。
|