• ベストアンサー

エクセルVBAのFormat関数について

エクセルVBAで使われているFormat関数を使って"1000"を"1,000"と表示させようとすると他のPCでは正常に表示されるのですが私のPCでは"1"と表示されてしまいます。 エクセルの設定だと思うのですが、どこをいじって良いか分かりません。誰か教えてください。

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

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.4

こんばんは。 #1の補足 >セル幅は十分にあります。 それで、 >UserForm3.pretaxamount.Caption というのは、ここに表示されたものが、「1」しかでないということでしょうね。 UserForm3のpretaxamount は、たぶん、ラベルですね。 かなり、おかしなコードですが、入力元を調べれば原因はわかるはずです。表示されたコードでは、コードとしてはヘンですが、表示が変る原因にはなりません。 ただし、このようにしたほうが安全かもしれませんが。 UserForm3.pretaxamount.Caption = Format$(CLng(pretaxamount), "\\#,###") この表示するまでの経路を1つずつ見ないと分りません。もしも、セルに入力したものが、UserForm上に現れるのでしたら、Range("A1").Text などとなっている可能性が強いです。それは、Range("A1").Value としなければなりません。

taguuh
質問者

お礼

返事が遅くなりました。有り難うございます。 試してみます。 文字列を数値と見なせば、カンマの前にある数字、すなわち「1」しか表示しないだろうなと判断できるのですが、私のPC以外では問題なく表示されるのが不思議です。時間があるときにじっくり見直したいと思います。

その他の回答 (3)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.3

こんばんは。 回答者側があれこれ考えても限界があると思います。 とにかく、コードを見せてくれませんか? Format関数は、テキスト出力ですから、ワークシート側で、たぶん、自動変換されている可能性が強いですが。

taguuh
質問者

補足

人からもらったマクロなんですが、 いじれないものもあります。 参照できるものは、 コードはこんな感じです。 Dim pretaxamount UserForm3.pretaxamount.Caption = Format(pretaxamount, "¥¥#,###") (¥¥は本来は半角です) 例えばこんな感じです。 ただ、他のPCではちゃんと","が挿入されるので、 エクセルの設定ではないかと思っていますがどうなんでしょう?

  • headgear
  • ベストアンサー率23% (6/26)
回答No.2

「,(カンマ)」と「.(ドット)」が違ってないでしょうか? 1.000(いってんぜろぜろぜろ)を整数表示になっていると「1」になってしまいます。 直すには、該当セルをクリックして、メニューの[書式]-[セル]で「表示形式」を「数字」にして、「小数点以下の桁数」を「3」にすれば表示されます。

taguuh
質問者

補足

記述の問題ではないと思っています。同じファイルを他のPCで開くとちゃんと”,”が入るんです。私の使用しているPCのみ"1000"→"1"となるんです。

  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.1

数値ならセルの書式設定の表示形式がユーザー定義で #,##0, のように最後にカンマが付いているですが Format関数は文字出力なので違うと思います。 考えられるのは",000"の部分がセルの幅が狭くて隠れてるとかしかないのですが...

taguuh
質問者

補足

セル幅は十分にあります。もし他になにか考えられることがあったらお願いします。 今のところ、私のPCのみの現象なんで、私さえ使用をあきらめれば済む話なんですが。

関連するQ&A