• ベストアンサー

なぜ結果が「#,100000」になるのでしょうか?

vbaです。 Sub tset() Dim kingaku As Currency kingaku = 100000 Debug.Print Format(kingaku, "\#,##0") End Sub 予想としては、「¥100,000」になると思ったし、そうしたかったのですが #,100000になってしまいます。 どこがおかしいですか?

質問者が選んだベストアンサー

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.3

エクセルVBAだとして Sub tset() Dim kingaku As Currency kingaku = 100000 MsgBox Format(kingaku, "\\#,##0") End Sub で¥が付きます。バックスラッシュで表示されてしまうが、円マーク2つです。 個人的に「正規表現」などからの連想で、やってみた結果です。 ーー http://officetanaka.net/excel/vba/tips/tips12.htm を読んでみてください。 ーーー Sub tset1() Dim kingaku As Currency kingaku = 100000 MsgBox FormatCurrency(kingaku) End Sub もOKのよう。FormatCurrency関数。 言語設計者に、引数でなくて、日付けや数値や通貨で関数を分けようという志向もあるようです。 ーー 表示形式に関するやり方は FormatNumber関数もあり、FormatDate関数もあり、VisualVasicやVBAなどで、いろいろある(表示形式のパラメータも微妙に違う)ようで、 各場合で、勉強して確認するしかないのではと個人的に感想を持ちます。。

tpokxbswmctlu
質問者

お礼

ありがとうございました。

その他の回答 (2)

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.2

debug.print format(kingaku, "\\#,##0") とします。 参考: http://www.tipsfound.com/VBA/05format.vbhtml >なぜ ¥は続く一文字の機能をキャンセルします。 例: debug.print format(0.5, "0.0\%") また0や#に「挟まれていない」,は桁区切りの機能を果たしません。 結果して数字は「機能を果たさない#,」に続けて、format(100000,"##0")が出力されます

tpokxbswmctlu
質問者

お礼

ありがとうございました。

  • notnot
  • ベストアンサー率47% (4900/10358)
回答No.1

文字列の中に \ を書くときは、\\ と2つ書きます。 "\\#,##0"

tpokxbswmctlu
質問者

お礼

ありがとうございました。