ExcelVBAで変数を文字列内に並べて自然な文章や計算書をつくる!

プログラミングの勉強

 

 Excelでセルの数値を文字列内に並べて文章や説明文をつくる!ではExcelシートにおいて、セルの数値と文字列を並べて定義して、普通の文章や計算書のように見える方法を説明しました。ここでは、ExcelVBAプロシージャ内での定義方法を示します。といっても、Excelシート内の定義と基本的に同じ。数値の書式の設定がTEXTからFormatに変わるだけです。文章内のあっちこっちに余計な余白ができてしまって、不格好な文章になっていたこれまでの出力を是正して、自然な文章や計算書などがつくれますよ。

こんなところで役に立つ!

 たとえば、VBAを使ったExcelシート上の計算書の例を下図に示します。最終結論を最終行に、各セルに文字列と数値を並べるようにプロシージャ内で定義したものです。これでも何となく計算書風にはなっていますが、応力値分布幅桁が増えるような場合にはセル幅が合わずに数字が消えるようなことも。そのたびに、セル幅などを調整しなくてはなりません。

 そんな場合に、1つのセル位置に文字列と変数を並べるようにプロシージャ内で定義し、文字列と変数の数値を自然な配置になるように並べる方法を次から説明します。

セルの値と文字列を並べて出力する方法

 セルの値と文字列を並べる方法は、Excelシートの場合と同じく、文字列を” ”で囲み、セル位置を& &で囲んだものを並べていくだけです。これを書かせるセルの位置に、つぎのように指定します。

  •  =”文字列”&セル位置&”文字列”&セル位置&・・・

 上記の方法でも良いのですが、VBAの場合は定義した変数の桁数だけ出力されて、かなり不格好な出力になりますので、数字の書式を同時に設定すべきでしょう。数字の書式の設定には、ExcelシートではTEXTを用いましたが、VBAではFormat(セル位置,”表示形式”)を使います。

  • =”文字列”&Format(セル位置,表示形式)&”文字列”&Format(セル位置,表示形式)&・・・

 これを出力したいセル位置に定義すればよく、例えば、つぎのように記述します。

  • Range(”セル位置”).Value=”文字列”&Format(セル位置,表示形式)&”文字列”&Format(セル位置,表示形式)&・・・

設定例

 プロシージャ内に下図に示すように、セル位置に文字列”&Format(変数,”表示形式”)&...の繰り返しで設定します。

 その結果、VBAを実行すると下図のように自然な文章表現とすることができました。

 ちなみにVBAで行を折り返す場合には、” _”(半角ブランクと_)を記入します。これにより次の行を継続した一文と認識してくれます。

 以上、参考にしてください。

コメント

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