タイトル : Re^3: tostringを改良したい 投稿日 : 2012/08/14(Tue) 17:04 投稿者 : VBレスキュー(花ちゃん)
> 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 下記のように書く事でもできます。 Debug.Print(ToFormatEx(123.456, 8, 1) & ToFormatEx(123.456, 8, 3)) Private Function ToFormatEx(ByVal d1 As Double, ByVal sp As Integer, ByVal kt As Integer) As String ToFormatEx = FormatNumber(d1, kt).PadRight(sp) End Function |