If IsNull(RST(6)) Then
wLn = Space(RST(5) -1) & Int((30 * Rnd) +10)
Else
wLn = Space(RST(5) -1) & Int((30 * Rnd) +10) & "." & Right("0000000" & Trim(Str(Int(Rnd * 10000000))), RST(6))
End if
※RST(5)、RST(6)、wLnは変数です
見た目が汚いからFormat関数を使って上記を直せと言われました。
自分で調べてみたものの、さっぱりわからず。。。
知恵を貸してください。お願いします
知恵を貸そうにも、何を求められているのかが曖昧すぎます。
このままでは、回答者側が、仕様を「推測」しなければなりません。
まずは、そのコードが何を行っているのか(何を行わせたいのか)を
明確にしてください。
RST(6) などの変数にしても、そこに何が入ってくるのかが説明されていません。
IsNull を使っている以上、Variant 型であろうとは想像できますが、
Null 以外の時に来る値が、どのような値であるのか不明瞭です。
(整数かも知れないし負数かも知れないし、数字の文字列かも知れないし)
> wLn = Space(RST(5) -1) & Int((30 * Rnd) +10)
型を意識しましょう。
「Space(RST(5) -1)」の実行結果は文字列型、
「Int((30 * Rnd) +10)」の実行結果は単精度浮動小数点型です。
& 演算子は、文字列同士の連結に使うべきなので、連結前に、
Int の実行結果を、Format 関数あるいはCStr関数などで
文字列型に統一すべきです。
> Trim(Str(Int(Rnd * 10000000)))
CStr(Int(Rnd * 10000000)) で良いかも。
魔界の仮面弁士さん。ありがとうございました
参考にさせていただきました。
ツイート | ![]() |