- ベストアンサー
Excel VBAでの少数桁合わせ
Excelで計算した計測データをDOSのフィルタープログラムで処理するためにデータをtxtファイルへ書き込む処理を作っているのですが、少数桁を合わせる必要があるらしく、上手いこと出来ないためお知恵を拝借したいです。 その昔のBASICならば print#1 usingなどという便利なコマンドがありましたが、見あたりません。 こんな感じで並べたいのですが… #####0.00000000 #####0.00000000 #####0.00000000 横に5個ずつ並べて5000個ほどあります。ただ並べるならば問題は無いのですが。 よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
Format が使えると思います。 変数名 = Format(変数名,"#####0.00000000") Excel の表示形式と同じ指定ができます。
その他の回答 (2)
- nishi6
- ベストアンサー率67% (869/1280)
まず、次のようにすると次の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
お礼
ありがとうございます。参考になりますm(_ _)m 早速明日、試してみます。
- imogasi
- ベストアンサー率27% (4737/17069)
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)では姿を消したようです。メモリ(変数)上には実現できなくて不便だった(出力用のみ)記憶がありますが。
お礼
早速の回答ありがとうございます!! 詳しく書いてくださってありがたいです。 助かります!早速、明日会社で試してみます。
お礼
早速の回答ありがとうございます!! やはり、方法があったんですね。気がつきませんでした。検索能力を上げなければ… 助かりました!早速、明日会社で試してみます。