2008年12月02日

Format関数とCurrency型

ExcelVBAの入門レベルのセミナーで変数と変数の宣言方法をご説明しています。
単価や合計金額など、金額はCurrency型として定義するのが一般的です。

ところがこれをそのままセルに代入してしまうと、セルの書式が変わってしまうことがあります。
例えば以下のようなプログラムを、書式設定をしていないワークシートに対して実行すると、
セルA1には \100.00 のように\マークだけではなく、小数点以下2桁までが表示されるようになります。


Sub 練習()
  Dim 価格 As Currency
  価格 = 100
  Range("A1").Value = 価格
End Sub


このような動きを回避するには、予めワークシートのセルに書式を設定しておくか、
あるいは
Format関数を使って 価格の値をどのように表示するか定義してからセルに代入すると
期待通りの表示結果になります。


例えば3桁ごとにカンマを表示するだけならば以下のようなFormat関数を作成します。


Sub 練習()
  Dim 価格 As Currency
  価格 = 100
  Range("A1").Value = Format(価格, "#,##0")
End Sub
posted by Three bit com at 10:00| Excel(エクセル)