タイトル | : Re: 文字列操作 |
記事No | : 12694 |
投稿日 | : 2008/07/03(Thu) 22:33 |
投稿者 | : Starfish |
> 「文字(2moji)文字列(12moji)」から > ()で囲まれた文字列(2moji)(12moji) > を(0002moji)(0012moji)にしたい > 場合はどうすれば良いでしょうか? > (数値の部分を4桁にしたい)
そのまま、プログラムするとこんな感じですか
Private Sub Command1_Click() Dim strInput As String ' 入力文字列 Dim strOutput As String ' 結果 Dim lngStart As Long ' "(" の位置 Dim lngEnd As Long ' ")" の位置 Dim lngNumCount As Long ' カッコの次の数字の桁数 Dim strNumber As String ' 数字チェック中の文字
strInput = "文字(2moji)文字列(12moji)" lngStart = InStr(1, strInput, "(") While lngStart > 0 lngEnd = InStr(lngStart + 1, strInput, ")") If lngEnd > 0 Then ' カッコの次の数字の桁数をカウント lngNumCount = 0 strNumber = Mid$(strInput, lngStart + lngNumCount + 1, 1) While strNumber >= "0" And strNumber <= "9" lngNumCount = lngNumCount + 1 strNumber = Mid$(strInput, lngStart + lngNumCount + 1, 1) Wend ' 結果に追加 If lngNumCount < 4 Then strOutput = strOutput & "(" & String(4 - lngNumCount, "0") & Mid$(strInput, lngStart + 1, lngEnd - lngStart) Else strOutput = strOutput & Mid$(strInput, lngStart, lngEnd - lngStart + 1) End If lngStart = InStr(lngEnd + 1, strInput, "(") Else ' 右カッコなし lngStart = 0 End If Wend Label1.Caption = strOutput End Sub
|