• ベストアンサー

Excelvbaでの表示形式

みなさんいつも強力な助言ありがとうございます。 VBA初心者なので、よろしくお願いします。 Excel2002を使っています。 0と入力したら、0.000と表示させたいのですが・・・ ユーザー定義からのやり方は、知っていますが VBAでも可能でしょうか? target="0.000"としても0しかでません。 やはり、ワークシートの設定も必要なのでしょうか? 初歩的な質問ですみません。 どなたか教えて下さい。

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

  • ベストアンサー
  • popesyu
  • ベストアンサー率36% (1782/4883)
回答No.1

ユーザー定義からの指定のしかたが分かるなら、マクロの自動記録でとりあえずやってみて、コードを確認すればどうすればよいかおのずと分かるでしょう。 ちなみに自動記録でやったらこんなコードを吐き出してくれました。 ActiveCell.FormulaR1C1 = "0" Range("A2").Select Selection.NumberFormatLocal = "#,##0.00" これを精製すれば  Range("a1") = "0"  Range("a1").NumberFormatLocal = "#,###0.000" こんな感じ。

aki_2424
質問者

お礼

VBAVBAとばかり考えていて便利なマクロを 忘れていました。 まだまだ、勉強不足ですみません。 やりたいことを、マクロで色々やってみます。 ありがとうございました。 aki

その他の回答 (1)

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

(1)値を変えても良いのなら Sub test01() For i = 1 To 7 'Cells(i, 2) = Format(Cells(i, 1), "##,###.####") Cells(i, 2) = Format(Cells(i, 1), "##,##0.0000") Next i 'Range("a1") = Format(Range"a1"), "##,##0.0000") End Sub 上のCellsは0.23に、下のCellsは0.2300式に表示される。 Rangeの例は1セルだけ設定する時はこのほうが判りやすいか。 0.0024--- .0024 0.12356-- .1236 0.23523-- .2352 0.23----- .2300 123.23--- 123.2300 12.569--- 12.5690 0-------- .0000 (2)表示形式だけ変える Sub test02() For i = 1 To 7 Cells(i, 2).NumberFormat = "##,###.0000" Next i End Sub 0.0024--- .0024 0.12356-- .1236---0.12356(値は元のまま) 0.23523-- .2352---0.23523(値は元のまま) 0.23----- .2300 123.23--- 123.2300 12.569--- 12.5690 0-------- .0000

aki_2424
質問者

お礼

色々なサンプルありがとうございます。 非常に勉強になります。 ありがとうございました。 aki

関連するQ&A

  • ExcelVBAのコードが知りたい

    ちょっと古いことを教えてほしいのですが。 というのは、新しく知り合いになった方から、古いプログラム(Excel-VBA)を直したい、という相談を受けました。 ところが、ものすご~く古いものらしくて 1)VBAProjectを開いてみると、シートオブジェクトと標準モジュールはあるのですが、フォームが表示されません。     でも、実際の動きをみると、入力用のフォームなどは表示されます。 2)良く見ると(Sheet表示を全部見ると)、シートオブジェクトに表示されないものがあって、そこにX1DG,X2DG・・・という名前のダイアログシートがあって、そのシート上にフォームがありました。 3)Macroを動かすいわゆるボタンはなくて、リボンの中のアドインを選ぶと、”ユーザー設定のツールバー”が表示され、その中にプルダウンメニューが設定されていて、これを操作すると、それぞれの機能が動きます。 3)動作するVBAのコードは標準Module上に書かれていますが、上記のダイアログの中の定義体や、ユーザー設定のツールバーの中のコードがどこを探しても出てきません。 4)VBAの教科書などを見ると、どうもEXCEL95/Excel4.0の時代のもののように見受けられます。 5)今使用している(知り合いの方も、私も)ものは、WinVISTA・Excel2007なのです。 どうしたら、全体構成(VBA・DG)を見ることができるでしょうか? 教えていただけると、むちゃくちゃ嬉しいのですが。 宜しくお願いします。

  • エクセルの表示形式について教えてください。

    こんにちは。 エクセル2000を使用してます。新規のワークシートで日付の表示形式で、9/12と入力すると、9月12日と表示されます。これを9/12のまま表示したいのです。今は表示形式の変更で列ごとに変更しています。ユーザー設定もしましたが、うまくいきませんでした。表示形式の優先順位を変えることはできるのでしょうか? どうかよろしくお願いします。

  • エクセル 表示形式のユーザー定義作成後、表示されなくてもよい記号が表示されてしまう。

    エクセルにおいて、シート1で表を作成、セルを表示形式のユーザー定義で[=1]"△";[=2]"○";"◎"と作成し、1と入力すれば△、2なら○、3なら◎となるようにしました。そのシート1の表の結果をシート2の表に表したく、シート2のセルでも表示形式のユーザー定義で同じように[=1]"△";[=2]"○";"◎"と作成、△、○、◎が表示されるようにしました。ところが、シート1で入力していなくてもシート2では◎が表示されてしまいます。1,2,3の入力結果は正しく表示されます。入力していないセルの結果(空欄)は表示しないよう(つまり空欄のまま)にしたいのです。どうすればよいのでしょうか? よろしくお願いします。

  • EXCELで表示形式について。。。

    EXCELで表示形式でユーザー定義を使用した時に、 その値で検索したいのですが、どうしたらよいのでしょうか? Aの列に表示形式をユーザー定義で"A-"##にしました。 セルには数字のみ入力しました。見えているのはA-20とかA-15とかです。 その値でVLOOKUPの関数で検索したいのですが、できますか? ユーザー定義ではA~Zを使用してます。 セルには10~55までの数字を入力して、表になってます。 シートをコピーして形式を選択して貼り付けしてもセルに入力した数字のみで、 ユーザー定義で表示している"A-"の部分はコピーできません。 もう一度、入力しなおしたくはないので、お願いします。

  • 【Excel】表示形式について

    こんにちは。 Excel2003を使用しています。 表示形式について質問です。 A1~A9セルに『9731』、『9732』…『9739』とそれぞれ入力されています。これらを全部見た目には『0973』と表示させたいのですが、ユーザー定義で設定することは可能でしょうか? ユーザー定義では不可能だけど、他の方法なら可能という場合もその方法を教えていただけると助かります。 よろしくお願いします。

  • エクセルの表示形式

    エクセルの表示形式について教えてください。 たとえば平成15年2月25日を入力では15/2/25と入力して表示はH15.2.25となるようなセルのユーザー定義 はどのような方法で設定すればいいのですか? 入力するデーターは過去の日付もあるので単純に数字と/ だけで入力したいのですが。なんどかやってみたのですが西暦に換算されてしまいます。 よろしくお願いします。

  • Excel 2007での表示形式について

    Excel 2007での表示形式について Windows XP Excel 2007 4195と入力すると、41.95と表示されます。 セルの書式設定の「表示形式」の「分類」標準を見ると、41.95 となっています。 ユーザー定義では、G/標準 となっています。 新規Bookでも同じ表示となります。 4195と表示できるようにしたいのですが、どこで設定すればいいのでしようか。 ご指導よろしくお願いいたします。

  • セルの表示形式について

    エクセルの表示形式について質問します。 例えば1234を 「1:23:4」や          「1.234」 に形式を変えるにはユーザー定義でどのようにすればいいでしょうか? 初心者で申し訳ないです。。

  • 表示形式を変えたい!!

    エクセルにおいて、数値の表示形式を変えたいのですが、 1234000000という数字を、 12億3千400万 という風に表示することは可能でしょうか? おそらくユーザー定義で設定するのだろうとは思いますが、そのフォーム(?)がわかりません! とっても困っています!!!(>_<) どなたがご存知の方、よろしくお願いします。 ちなみにOSはWin.xp、エクセル2002です。

  • ユーザー定義の書式設定を文字列データで取得

    他の方が作ったエクセルのワークシートのセルにユーザー定義で書式設定されています。 たとえば、 "AKB-"0000 "SKE-"0000 とか、いろいろあります。 数値で48と入力すれば、AKB-0048やSKE-0048 のように表示されます。 なんでこんなのを書式設定でするんだ!というお叱りはひとまずおいといてください。 この表示された状態を、他のセルに文字列としてAKB-0048やSKE-0048 というデータとして簡単に取得する方法はないでしょうか? 最初、 ="AKB-"&TEXT(A5,"0000") で簡単・・・なんて思ったのですが、ユーザー定義が何種類もあり、一度ではできず結構手間です。 VBAならば Sub test() Dim c As Range For Each c In Selection c.Offset(, 1).Value = c.Text Next End Sub でできるのですがVBA抜きのワークシートの操作でできるかどうかの質問です。 ユーザー定義関数もVBAなので除外させてください。 よろしくお願いします。

専門家に質問してみよう