括弧()の中身の文字列をそれぞれ配列の文字列変数に設定したいと考えているのですが、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で質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) Vbaで数式をポーランド記法に変換するコードを作って実行しようとするとフリーズします。 1 2022/05/24 17:53
- Visual Basic(VBA) ①ExcelVBAでカレンダーを作り、別のユザーフォームで日付を入力したいのですがエラーになります。 1 2023/02/17 18:39
- Excel(エクセル) Excelにて、フォルダ内のTextファイルをマクロで統合すると文字化けしてしまう時の解消コード 4 2023/01/01 07:32
- Visual Basic(VBA) エクセルのマクロで対象ごとにシート分けしてその内容をセルに書き込みたい 9 2022/08/24 13:23
- Visual Basic(VBA) 数字が「0」の列を削除するため、下記のコードを実行しましたが、コンパイルエラーSubまたはFunct 3 2022/12/04 00:00
- Visual Basic(VBA) 実行時エラー´5854´ 文字列型パラメーターが長すぎます。 3 2023/06/08 21:17
- Excel(エクセル) VBAで組み合わせ算出やCOUNTIFSの処理を高速化したいです。 4 2022/04/07 02:38
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 6 2022/06/08 12:55
- Visual Basic(VBA) VBAで質問ですが、皆さんはどの様に導き出しているのでしょうか? 6 2022/05/03 21:53
- Visual Basic(VBA) サブフォルダ(データ)にある複数の.xlsxファイルのSheet3のA2セルの値で01から左側をB2 2 2022/08/14 15:46
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C++で文字列の右端から特定の文...
-
WSH(VBS)でJSONの文字列を読み...
-
C言語の勉強しています。すみま...
-
c#で他のアプリの文字入力フォ...
-
VBA-DLLの引数受け渡しについて
-
C++で入力した文字列から数字を...
-
C言語のコンパイル時に表示され...
-
VBを2008を用いてCSVを取り込む...
-
関数に文字列を渡すことについて
-
%dなどの違い
-
_tcscpy_s(wcscpy_s)の第二引数...
-
2進数を10進数へ変換したいの...
-
PIC18F26K22でsscanf関数を使い...
-
mallocについて
-
C言語 配列の長さの上限
-
関数から配列を返すには?
-
先頭アドレスとは何ですか?
-
C言語の関数と配列に関する質問
-
プログラミング MATLAB
-
fstream型オブジェクトを関数の...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C++で入力した文字列から数字を...
-
nullと""、\\0とEOFの違いにつ...
-
プログラムによく出てくるst...
-
%dなどの違い
-
WSH(VBS)でJSONの文字列を読み...
-
TCL言語で文字列検索方法を教え...
-
C#でstringをポインタとして渡す
-
16進数を2文字ずつ配列に格納し...
-
_tcscpy_s(wcscpy_s)の第二引数...
-
C++で文字列の右端から特定の文...
-
シリアル通信で0x00を送信した...
-
VBA-DLLの引数受け渡しについて
-
数字の入った配列をファイルへ...
-
c#で他のアプリの文字入力フォ...
-
構造体→文字列→構造体 をする方法
-
Shift_JIS(16進)を文字に変換す...
-
バイナリファイル中の日本語文...
-
C言語の課題で困っています;
-
[C++]WCHARの1文字目しか表示で...
-
VB6.0でのバイナリデータの扱い...
おすすめ情報