• ベストアンサー

Excel VBAでの少数桁合わせ

Excelで計算した計測データをDOSのフィルタープログラムで処理するためにデータをtxtファイルへ書き込む処理を作っているのですが、少数桁を合わせる必要があるらしく、上手いこと出来ないためお知恵を拝借したいです。 その昔のBASICならば print#1 usingなどという便利なコマンドがありましたが、見あたりません。 こんな感じで並べたいのですが… #####0.00000000 #####0.00000000 #####0.00000000 横に5個ずつ並べて5000個ほどあります。ただ並べるならば問題は無いのですが。 よろしくお願いします。

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

  • ベストアンサー
  • hana-hana3
  • ベストアンサー率31% (4940/15541)
回答No.1

Format が使えると思います。 変数名 = Format(変数名,"#####0.00000000")  Excel の表示形式と同じ指定ができます。

YHO
質問者

お礼

早速の回答ありがとうございます!! やはり、方法があったんですね。気がつきませんでした。検索能力を上げなければ… 助かりました!早速、明日会社で試してみます。

その他の回答 (2)

  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.3

まず、次のようにすると次の3行のようになるはずです。(書式の最後に半角スペースがあります) 整数部分で桁ずれを起こすはずです。 Format(変数名, "#####0.00000000 ")  228834.86747742 9384.70602036 416668.29586029 555518.20993423 234366.41693115  9127.94828415 238424.89719391 7289.42155838 577929.73518372 21807.13415146  860279.91771698 22046.62561417 942691.32614136 650422.75190353 731.89258575 上のカタチでよければ問題ありませんが、有効桁数をすべてそろえるには、 Right(String(16, " ") & Format(変数名, "#####0.00000000"), 16) のようにするのも一法と思います。(下表、『_』は半角スペースの代用です)   228834.86747742 __9384.70602036 416668.29586029 555518.20993423 234366.41693115   __9127.94828415 238424.89719391 __7289.42155838 577929.73518372 _21807.13415146   860279.91771698 _22046.62561417 942691.32614136 650422.75190353 ___731.89258575

YHO
質問者

お礼

ありがとうございます。参考になりますm(_ _)m 早速明日、試してみます。

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

Sub test01() n = Cells(1, 1) Cells(1, 2) = Application.WorksheetFunction.Text(n, "###,###.00000") m = Application.WorksheetFunction.Text(n, "###,###.00000") MsgBox m End Sub を参考にして考えて見てください。(TEXT関数) http://park8.wakwak.com/~web-doc/excel/exhyouji.htm も参考に。 なおシート上での確認にはワークシートのセルの書式の数値の小数点以下の桁数を多く設定してみてください。 NumberFormatがVBAにありますが、セルの表示だけで、文字列には、実現できないでしょう。 Print Using (エヂットマスク) 文はVB(VBA)では姿を消したようです。メモリ(変数)上には実現できなくて不便だった(出力用のみ)記憶がありますが。

YHO
質問者

お礼

早速の回答ありがとうございます!! 詳しく書いてくださってありがたいです。 助かります!早速、明日会社で試してみます。

関連するQ&A