タイトル : Re^2: tostringを改良したい 投稿日 : 2012/08/14(Tue) 15:53 投稿者 : しげちん
早速のコメントありがとうございます. FormatNumberを使うと 2つの数値を区切る際に Debug.Print (FormatNumber(x,3) & " " & FormatNumber(y,4)) というように「" " &」を余分に書かねばならないので, できれば.ToStringF(a,b)というメソッドの改良の方法を教えてくださいませんでしょうか? (この方法だと,出力する数値全体の長さよりも大きなaを指定しておけば勝手に空白が入るので, 空白を部分の記述を省くことができます) 今のところ,末尾のような関数を作って Debug.Print (format1(x,10,3) & format1(y,14,3)) のようにしているのですが,メソッドを改良する方法で同じことは実現できないかと思い 質問しました. 初心者には難しい作業なのかもしれませんが,よろしくお願い致します. Function format1(ByVal a As Double, ByVal b As Integer, ByVal c As Integer) 'format number "a":フォーマットを併せる 'b : length of number including decimal point 'c : length of decimal place Dim fm$ = "", st$ Dim nl As Integer Select Case c Case Is > 0 'decimal fm$ = "##0." For i = 1 To c fm$ = fm$ + "0" Next i Case 0 'long fm$ = "##0" End Select st$ = Format(a, fm$) nl = Len(st$) 'length of a If nl < b Then For i = 1 To b - nl 'add space st$ = " " + st$ Next i ElseIf nl > b Then 'delete upper digit st$ = Mid$(st$, nl - b + 1, b) End If format1 = st$ End Function |