下記内容の実現方法をご存じの方にお知恵を借りられれば幸いです。
◆質問内容
Double型の変数に 1 が入っています。
それを「数値」としてファイル出力するときに、
小数点第一位までを含めて「1.0」と出力させたいのですが、どうすれば良いでしょうか?
◆参考までに私が試したコード
Dim Ff As Integer
Dim DX as Double
Dim AX as Double
DX = 1
AX = 1.5
Ff = FreeFile
Open "c:\test.txt" For Output As Ff
Write #Ff, (Format(DX, "#0.0")) ← ※1
Write #Ff, val(Format(DX, "#0.0")) ← ※2
Write #Ff, AX ← ※3
Close Ff
※1 これだと "1.0" のように文字列として書きこまれてしまいます。NGです。
※2 これだと 1 のように小数点第一位の0が書き込まれません。NGです。
※3 これは 1.5 と意図通りに書き込めます。
記載に抜けがありました。すいません。
「複数のDouble型をスペースなしのカンマ区切りで出力」という条件を忘れておりました。
print #Ff, (Format(DX, "#0.0")),",",(Format(AX, "#0.0")) だと
1.0 , 1.5
のように、異様に多いスペースが付加されて困っております。
書式を整える必要がある場合は、Write # ステートメントではなく、
Print # ステートメントを使うようにしましょう。
> print #Ff, (Format(DX, "#0.0")),",",(Format(AX, "#0.0")) だと
カンマ区切りではなく、スペース区切り、
Print #Ff, Format(DX, "#0.0") "," Format(AX, "#0.0")
またはセミコロン区切りを使うと、連続して出力されます。
Print #Ff, Format(DX, "#0.0");",";Format(AX, "#0.0")
あるいは「& 演算子」で、行全体を長い文字列として連結するのも手かと。
Print #Ff, Format(DX, "#0.0") & "," & Format(AX, "#0.0")
>魔界の仮面弁士さま
記載不備により二回も投稿させてしまってすいません。
いただいた情報でばっちり解決しました!
しかも色々な考え方を教えていただきとても参考になりました。
それにしてもVB情報を検索していると魔界の仮面弁士さまのお名前を色んな所で目にします。
これからも日本のVB力底上げにご尽力されるのを影ながら応援させていただきます。
ありがとうございました。
ツイート | ![]() |