セルの書式設定で単位をつけた数値の文字列化
マクロ講座51回


数値を表示形式のままで文字列に変換する
ユーザー定義の表示を文字列に変更する For Each ~ Next
実際のセルには、数値が入っているのに、見かけ上は1000円などと、
単位がついていて文字列に見えるように書式設定している場合があります。
しかし、どうしてもセルに入った数値をユーザー定義の書式設定のまま、
つまり見た目どおりの文字列として扱いたい場合には、数値を文字列に変換して、単位を追加するのがめんどうですね。
マクロで簡単にできるので、ご紹介します。
セルに対しての変更を選択範囲に繰り返すためにFor Each ~ Next ステートメントを使います。
(サンプルファイルは、こちらから 2013マクロ講座51回サンプルデータ)
セルの書式設定のユーザー定義で円を表示する
下記のお弁当価格表には、定価の欄に420円と表示してありますが、
実際は420という数値が入力されていて、書式設定のユーザー定義で円がつくようになっています。


セルの書式設定を開き、確認すると、表示形式のユーザー定義には、
0"円"となっています。

0"円"となっています。

ユーザー定義された数値を文字列に変更には
ユーザー定義された数値を文字列に変更には、個々のセルに対して、値を取得して、書式付きで代入します。
まとめて、処理ができないので、For Each ~ Next構文を使いループします。 もう何度も出てきたのでお馴染みですね。

まとめて、処理ができないので、For Each ~ Next構文を使いループします。 もう何度も出てきたのでお馴染みですね。

処理を行いたいセルを変数として宣言し、その変数に処理を実行していきます。
例では、汎用的に使いたいので、処理を行いたいセル範囲をあらかじめ選択しておきます。
選択範囲を変数として宣言しています。
選択範囲を変数として宣言しています。
Sub ユーザー定義で書式設定された表示を文字列に() Dim 選択セル As Range For Each 選択セル In Selection 選択セル.Value = 選択セル.Text Next 選択セル End Sub
マクロを実行すると、数値が表示形式のまま文字列に変換されています。


今日の講義は以上です。お疲れ様でした。