セルの書式を数値にした場合、小数点以下が表示されないことがあります。
こちらの記事では、小数点以下を含む数値を小数点以下まで表示させる方法を、
Excel上の操作のみで表示する場合と、VBAを利用して表示する場合をそれぞれご紹介しています。
対処法① 小数点以下の桁数を固定して表示させる
Excel上の操作のみで小数点以下を桁数固定で表示する方法
エクセル上で直接行う場合は上部メニューの『ホーム』タブから上記画像のアイコンをクリックすることで1桁ずつ表示桁数を増やすことが出来ます。
この表示方法の注意点は、小数点以下の表示桁数が固定されるという点です。
少数点以下の表示桁数を2桁にした場合、下記の様に表示されます。
1.2345 ⇒ 1.23
1.2 ⇒ 1.20
VBAを利用して小数点以下を桁数固定で表示する方法
VBAで小数点以下をセル上で表示する場合は、 Range.NumberFormatLocal プロパティを使います。
下記は、A1セルに対して小数点第二位まで表示し、負の数値の場合は赤文字表示を設定する例です。
Private Sub CommandButton1_Click()
Dim wb As Workbook
Dim ws As Worksheet
Set wb = ThisWorkbook
Set ws = wb.ActiveSheet
ws.Range("A1").NumberFormatLocal = "0.00_ ;[赤]-0.00 "
End Sub
Rangeには対象となるセルを指定します。
複数セルを範囲指定する場合は下記の様にします。
'セルの範囲に列名を利用する場合
ws.Range("A1:J10").NumberFormatLocal = "0.00_ ;[赤]-0.00 "
'セルの範囲を数値のみで指定する場合
ws.Range(Cells(1, 1), Cells(10, 10)).NumberFormatLocal = "0.00_ ;[赤]-0.00 "
上記のサンプルコード2つはどちらも下記のように同じ結果となります。
この方法で気を付ける点は、今回のケースのように「NumberFormatLocal = “0.00_ ;[赤]-0.00 “」とした場合、必ず小数点第二まで表示されることと、小数点第三位以下は表示されないことです。
数値が 0 だった場合は 0.00 と表示されます。数値が 0.1 の場合は 0.10 となります。
対処法② 小数点以下の数値がある場合のみ小数点以下を表示する
Excel上の操作のみで桁数を固定せずに小数点以下を表示する方法
小数点以下の数値がある場合のみに、すべての数値を表示させたい場合は、
セルの書式を数値型ではなく、標準にすることで対処可能です。
エクセル上で直接操作する場合はホームタブの下記の画像の場所から変更可能です。
VBAで桁数を固定せずに小数点以下を表示する方法
VBAで小数点以下を桁数固定せずにセル上で表示させるには、対処法1と同様に Range.NumberFormatLocal プロパティを使い“G/標準”を設定します。
Private Sub CommandButton1_Click()
Dim wb As Workbook
Dim ws As Worksheet
Set wb = ThisWorkbook
Set ws = wb.ActiveSheet
ws.Range("A1").NumberFormatLocal = "G/標準"
End Sub
複数セルを範囲指定する場合は下記の様にします。
'セルの範囲に列名を利用する場合
ws.Range("A1:J10").NumberFormatLocal = "G/標準"
'セルの範囲を数値のみで指定する場合
ws.Range(Cells(1, 1), Cells(10, 10)).NumberFormatLocal = "G/標準"
上記の実行結果はどちらも下記のように同じ結果となります。
数値形式と違い 0 の場合は 0と表示されています。
この方法の注意点としては、小数点以下の桁数が本来の桁数分全て表示されるわけではないということです。
小数点以下の表示桁数は9桁となっています。それ以上の桁数を表示するには書式を数値とする必要があります。