指定したフォーマットで文字列を作る 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 Function
Pattern に書式を指定し、以下にパラメータを指定する。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) まんえーん。