Excelと同様の形式で数値文字列を取得する

VBAで数値を文字列として扱いたい場合、特に変換処理は必要なく

Cells(1,1).Value

で取得できる。文字列との連結等もうまくやってくれる。 .Valueプロパティにおける文字列変換仕様は概ねJavaのDouble.toStringと同じだけれど、微妙に異なる点もある。たとえば

Double.toString(1.0) // ⇒ "1.0"

に対して

Cells(1.1).Value ' ⇒ "1"

など。

Java側でExcelの仕様通りに数値文字列を取得したい場合が(稀に)ある。 たとえば現行システムの再構築の際にVBAで組まれた帳票取り込みをJavaで再現しないといけないとか。 そういうときのためのクラスがあり、

NumberToTextConverter.toText(1.0D) // ⇒ "1"

で取得できる。すごい。細かな変換仕様はリンク先を参照

  • 参考文献

NumberToTextConverter (POI API Documentation)