指定したフォーマットで文字列を作る VB6 用関数。
Public Function FormatText(ByVal Pattern As String, ParamArray Params() As Variant) As String
Dim Values() As String
Dim Pos As Long
Dim I As Long
Values = Split(Pattern, "%%")
For I = 1 To UBound(Values) Step 2
Pos = InStr(Values(I), ":")
If Pos < 1 Then
Values(I) = CStr(Params(Val(Values(I)) - 1))
Else
Values(I) = Format(Params(Val(Left(Values(I), Pos - 1)) - 1), Mid(Values(I), Pos + 1))
End If
Next
FormatText = Join(Values, "")
End FunctionPattern に書式を指定し、以下にパラメータを指定する。Pattern 中に %%1%%、%%2%%、……と書くと、パラメータの 1 つめ、2 つめが埋め込まれる。
埋め込む部分の書式を指定したい場合は、数字の後に、コロンをはさんで書式を指定できる。この書式は Format 関数の指定に従う。
以下、利用例。
FormatText("今日の日付は %%1%% ですよ。", Date)
→ 今日の日付は 2005/06/03 ですよ。
FormatText("今日の日付は %%1:yyyy年mm月dd日%% ですよ。", Date)
→ 今日の日付は 2005年06月03日 ですよ。
FormatText("今月の収支は %%1:###;(###)%% まんえーん。", 20)
→ 今月の収支は 20 まんえーん。
FormatText("今月の収支は %%1:###;(###)%% まんえーん。", -20)
→ 今月の収支は (20) まんえーん。