ヘンクは、小数点の配置に関係なく、6桁を使用して数値を表示する方法がExcelにあるかどうか尋ねました。たとえば、0.1は0.10000と表示され、200は200.000と表示され、25000は25000.0と表示されます。

残念ながら、そのトリックを実行するフォーマットはありません。すべての表示形式は小数点の位置に依存しているようです。小数点以下の特定の桁数で表示をフォーマットできますが、小数点以下の桁数に関係なく、その桁数が使用されます。

いくつかの_ExcelTips_サブスクライバーは、数式を使用して必要に応じて数値を表示することを含む提案を思い付きました。たとえば、次の数式は、6桁の数字を使用してA1の値を表示します。

=FIXED(A1,IF(ABS(A1)<1,5,5-INT(LOG(ABS(A1)))),TRUE)

他の読者は、数値をテキスト文字列に変換してそのように表示することに依存する数式を提供しました。ただし、数値を同等のテキストに変換すると、他の数式で数値を使用できなくなるという明確な欠点があります。 (覚えておいてください。この時点ではテキストであり、数字ではありません。)上記の数式にはその制限はありません。

必要に応じて、マクロを使用して、値を含むセル内の書式を設定することもできます。このようなマクロの利点は、上記のように、数式にセルを使用する必要がないことです。マクロの欠点は、セル内の値が変更されるたびに、セル上でマクロを実行することを忘れないようにする必要があることです。次のマクロは、そのようなアプローチの例です。

Sub SetFigures()

Dim iDecimals As Integer     Dim bCommas As Boolean     Dim sFormat As String     Dim CellRange As Range     Dim TestCell As Range

bCommas = False 'Change as desired

Set CellRange = Selection     For Each TestCell In CellRange         If Abs(TestCell.Value) < 1 Then             iDecimals = 5         Else             iDecimals = 5 - Int(Log(Abs(TestCell.Value)) / Log(10#))

End If

sFormat = "0"

If bCommas Then sFormat = "#,##0"

If iDecimals < 0 Then sFormat = "General"

If iDecimals > 0 Then sFormat = sFormat & _           "." & String(iDecimals, "0")



TestCell.NumberFormat = sFormat     Next TestCell End Sub

マクロを使用するには、フォーマットするセルを選択して実行するだけです。選択した範囲の各セルは、セルの数値が大きすぎたり小さすぎたりしない限り、6桁を表示するように設定されています。

注:

このページ(または_ExcelTips_サイトの他のページ)で説明されているマクロの使用方法を知りたい場合は、役立つ情報を含む特別なページを用意しました。

_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。

このヒント(10920)は、Microsoft Excel 2007、2010、2013、2016、2019、およびOffice 365のExcelに適用されます。Excelの古いメニューインターフェイス用のこのヒントのバージョンは、次の場所にあります。