- ベストアンサー
なぜ結果が「#,100000」になるのでしょうか?
vbaです。 Sub tset() Dim kingaku As Currency kingaku = 100000 Debug.Print Format(kingaku, "\#,##0") End Sub 予想としては、「¥100,000」になると思ったし、そうしたかったのですが #,100000になってしまいます。 どこがおかしいですか?
- みんなの回答 (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などで、いろいろある(表示形式のパラメータも微妙に違う)ようで、 各場合で、勉強して確認するしかないのではと個人的に感想を持ちます。。
その他の回答 (2)
- keithin
- ベストアンサー率66% (5278/7941)
debug.print format(kingaku, "\\#,##0") とします。 参考: http://www.tipsfound.com/VBA/05format.vbhtml >なぜ ¥は続く一文字の機能をキャンセルします。 例: debug.print format(0.5, "0.0\%") また0や#に「挟まれていない」,は桁区切りの機能を果たしません。 結果して数字は「機能を果たさない#,」に続けて、format(100000,"##0")が出力されます
お礼
ありがとうございました。
- notnot
- ベストアンサー率47% (4900/10358)
文字列の中に \ を書くときは、\\ と2つ書きます。 "\\#,##0"
お礼
ありがとうございました。
お礼
ありがとうございました。