ユーザー定義の表示を文字列に変更する~Excel 2013 マクロ講座

セルの書式設定で単位をつけた数値の文字列化

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

数値を表示形式のままで文字列に変換する

ユーザー定義の表示を文字列に変更する For Each ~ Next

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

セルの書式設定のユーザー定義で円を表示する

下記のお弁当価格表には、定価の欄に420円と表示してありますが、 実際は420という数値が入力されていて、書式設定のユーザー定義で円がつくようになっています。
セルの書式設定を開き、確認すると、表示形式のユーザー定義には、
0"円"となっています。
表示形式のユーザー定義

ユーザー定義された数値を文字列に変更には

ユーザー定義された数値を文字列に変更には、個々のセルに対して、値を取得して、書式付きで代入します。
まとめて、処理ができないので、For Each ~ Next構文を使いループします。 もう何度も出てきたのでお馴染みですね。
For Each~Nextステートメント
処理を行いたいセルを変数として宣言し、その変数に処理を実行していきます。 例では、汎用的に使いたいので、処理を行いたいセル範囲をあらかじめ選択しておきます。
選択範囲を変数として宣言しています。
Sub ユーザー定義で書式設定された表示を文字列に()
    Dim 選択セル As Range
    For Each 選択セル In Selection
        選択セル.Value = 選択セル.Text
    Next 選択セル
End Sub
    
マクロを実行すると、数値が表示形式のまま文字列に変換されています。
数値が表示形式のまま文字列に変換
今日の講義は以上です。お疲れ様でした。