- ベストアンサー
VB6 文字列間 入力
VB6で文字列間に値を入力したいです。 (例) 文字列「00112233445566778899」 この文字列で2文字毎に「+」と「=」を入力させて 文字列「00+11+22+33+44+55+66+77+88+99=」 というようにするにはどうすればいいでしょうか?
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
[イミディエイト] 00+11+22+33+44+55+66+77+88+99= Private Sub Command1_Click() Dim I As Integer Dim J As Integer Dim K As Integer Dim strSuji As String Dim strSujis() As String strSuji = "00112233445566778899" J = Len(strSuji) ReDim strSujis(xxx) As String For I = 1 To J Step xxx strSujis(K) = Mid(strSuji, I, 2) K = K + 1 Next I Debug.Print Left(Join(strSujis(), "+"), xxxxx) & "=" End Sub こんな感じです。
その他の回答 (4)
補足:トリッキーではなくシンプルな書き方の一例。 [いミディエイト] 00+11+22+33+44+55+66+77+88+99= Private Sub CommandButton1_Click() Dim S As String S = "00112233445566778899" & Space(9) Mid(S, 3 * 1) = "+" & Mid(S, 3 * 1) Mid(S, 3 * 2) = "+" & Mid(S, 3 * 2) Mid(S, 3 * 3) = "+" & Mid(S, 3 * 3) Mid(S, 3 * 4) = "+" & Mid(S, 3 * 4) Mid(S, 3 * 5) = "+" & Mid(S, 3 * 5) Mid(S, 3 * 6) = "+" & Mid(S, 3 * 6) Mid(S, 3 * 7) = "+" & Mid(S, 3 * 7) Mid(S, 3 * 8) = "+" & Mid(S, 3 * 8) Mid(S, 3 * 9) = "+" & Mid(S, 3 * 9) Debug.Print S & "=" End Sub これを For 文にするのは任せます。
お礼
ありがとうございました。 参考になりました。
- imogasi
- ベストアンサー率27% (4737/17069)
MID関数(左辺Midと右辺Midの2パターン)使って Sub test01() strsuji = "00112233445566778899" s = String(9 * 3, "+") & " =" ' MsgBox s For i = 1 To Len(strsuji) Step 2 Mid(s, ((i - 1) / 2) * 3 + 1, 2) = Mid(strsuji, i, 2) Next i MsgBox s End Sub
お礼
ありがとうございました。 参考になりました。
- Wendy02
- ベストアンサー率57% (3570/6232)
こんにちは。 この程度での文字なら、こんなローテクでもよいのでは? こういうのに、書き方はいくらでもあるのでしょうけれども……。 Dim i As Integer Dim buf As String Const txt As String = "00112233445566778899" For i = 1 To Len(txt) Step 2 If buf = "" Then buf = Mid(txt, i, 2) Else buf = buf & "+" & Mid(txt, i, 2) End If Next i buf = buf & "=" Debug.Print buf
お礼
ありがとうございました。 参考になりました。
- sekidoutyokka
- ベストアンサー率20% (20/99)
mid関数使えば簡単かと 「VB 文字列操作」で検索してみてください
お礼
ありがとうございました。 非常に参考になりました。