
括弧()の中身の文字列をそれぞれ配列の文字列変数に設定したいと考えているのですが、Replaceを使えばいいのでしょうか?
また、Replaceは置き換える文字の検索の開始場所は設定できると思うのですが、置き換える文字の検索の終了の場所は設定できるのでしょうか?
例えば、(asdf)as(asdfe)as(sf)という文字列のasdf,asdfe,sfをそれぞれ配列を使って文字列変数として表したいのです。
nyuuryoku = Text1.Text
For i = 1 To Len(nyuuryoku)
If Mid(nyuuryoku, i, 1) = "(" Then
k = k + "と" + CStr(i)
j = j + 1
ElseIf Mid(nyuuryoku, i, 1) = ")" Then
m = m + "と" + CStr(i)
l = l + 1
End If
Next i
Text17.Text = "( は" + CStr(j) + "個" + k + "番目、 " + ") は" + CStr(l) + "個" + m + "番目"
For i = 1 To Len(nyuuryoku)
If Mid(nyuuryoku, i, 1) = "[" Then
kk = kk + "と" + CStr(i)
jj = jj + 1
ElseIf Mid(nyuuryoku, i, 1) = "]" Then
mm = mm + "と" + CStr(i)
ll = ll + 1
End If
Next i
Text2.Text = "[ は" + CStr(jj) + "個" + kk + "番目、" + "] は" + CStr(ll) + "個" + mm + "番目"
Dim kakkohajime(50) As Long
Dim kakkoowari(50) As Long
Dim kakkonakami(50) As String
For i = 1 To CStr(j)
kakkohajime(0) = 1
kakkohajime(i) = InStr(kakkohajime(i - 1), nyuuryoku, "(")
Next
For i = 1 To CStr(j)
kakkoowari(0) = 1
kakkoowari(i) = InStr(kakkohajime(CStr(j) + 1 - i), nyuuryoku, ")")
Next
このあとにkakkohajime(i)の場所からkakkoowari(i)の場所までの文字列をそれぞれkakkonakami(i)の配列の文字列にいれたいのです。
最後に、kakkonakami(i)をtextに表示したいと思っています。
No.1ベストアンサー
- 回答日時:
Sub test1()
Dim nyuuryoku As String
Dim kakkonakami() As String
Dim j As Long
Dim i As Long
'対象の文字列を受け取る
''''nyuuryoku = Text1.Text
nyuuryoku = "(asdf)as(asdfe)as(sf)"
'区切り文字を指定して文字列を分割する
kakkonakami() = Split(nyuuryoku, "(")
'分解した件数を取得する
j = UBound(kakkonakami())
'分解した件数すべてについて判断を行う
For i = 0 To j
'分割された要素ごとに")"までを有効とする
If InStr(kakkonakami(i), ")") > 0 Then
'")"の直前までが有効
kakkonakami(i) = Mid(kakkonakami(i), 1, InStr(kakkonakami(i), ")") - 1)
End If
Next i
'区切り文字を指定して連結する
MsgBox Join(kakkonakami(), "これが区切り文字")
''''Text1.Text = Join(kakkonakami(), "これが区切り文字")
End Sub
回答ありがとうございます。
Replaceでは限界があったのですね。
こんなに短くなるとは思いませんでした。
どうもありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
人気Q&Aランキング
-
4
C#でstringをポインタとして渡す
-
5
TCL言語で文字列検索方法を教え...
-
6
アルファベットをカウント、
-
7
数字の入った配列をファイルへ...
-
8
nullと""、\\0とEOFの違いにつ...
-
9
_tcscpy_s(wcscpy_s)の第二引数...
-
10
C++で文字列の右端から特定の文...
-
11
Shift_JIS(16進)を文字に変換す...
-
12
char型配列の最大要素数
-
13
%dなどの違い
-
14
アルファベットの出て来た回数
-
15
sprintf関数について教えて下さ...
-
16
シリアル通信で0x00を送信した...
-
17
バイナリファイル中の日本語文...
-
18
このプログラミングの問題が解...
-
19
文字列型の一般的な変数名は?
-
20
C#で文字列から数値だけ取得す...
おすすめ情報
公式facebook
公式twitter