下記のような記述だと1つ目の「天気」の文字列は取得できても
2つ目の「晴れ」の文字列を取得することができません。
どうすれば2つ目の文字列を取得することができるのでしょうか?
※「<」と「>」で挟まれている間の文字列を取得したいです。
※「<」と「>」が何組あるかは不明です。
Dim str0, str1, str2 As Variant
Dim 指定1, 指定2 As Variant
str0 = ”今日の<天気>は<晴れ>です。
指定1 = ”<”
指定2 = ”>”
str1 = Mid(str0, Len(指定1) + InStr(1, str0, 指定1)
str2 = Left(str1, InStr(1, str1, 指定2) - 1)
使用OS:Windows 8
使用ソフト:Microsoft Excel 2007
ご存知の方がおられましたらご回答をよろしくお願いいたします。
No.1
- 回答日時:
こういうときは 私なら、InStr関数を使うかな。
あんまりスマートなコード例じゃないかもしれないけど、解読してみて下さい。
Dim str0, str1, str2 As Variant
Dim 指定1, 指定2 As Variant
Dim ptA As Integer
Dim ptZ As Integer
str0 = "今日の<天気>は<晴れ>です。"
指定1 = "<"
指定2 = ">"
ptA = InStr(1, str0, 指定1)
ptZ = InStr(1, str0, 指定2)
str1 = Mid(str0, ptA + 1, ptZ - ptA - 1)
ptA = InStr(ptZ, str0, 指定1)
ptZ = InStr(ptZ + 1, str0, 指定2)
str2 = Mid(str0, ptA + 1, ptZ - ptA - 1)
MsgBox (str1)
MsgBox (str2)
No.2ベストアンサー
- 回答日時:
> ※「<」と「>」が何組あるかは不明です。
っていうなら、str1、str2・・・・ じゃダメですよね。
際限なく str3・・・・str100 とか宣言するわけにもいかないし。
Dim str0 As Variant
Dim str1() As Variant
Dim stIdx As Integer
Dim 指定1 As Variant
Dim 指定2 As Variant
Dim ptA As Integer
Dim ptZ As Integer
指定1 = "<"
指定2 = ">"
str0 = "今日の<天気>は<晴れ>です。<雨>や<曇り>だったり<大荒れの嵐>もあるかも。"
ReDim str1(Int(Len(str0) / 2)) As Variant
ptZ = 1
stIdx = 0
Do Until InStr(ptZ, str0, 指定1) = 0
stIdx = stIdx + 1
ptA = InStr(ptZ, str0, 指定1)
ptZ = InStr(ptZ + 1, str0, 指定2)
str1(stIdx) = Mid(str0, ptA + 1, ptZ - ptA - 1)
MsgBox (str1(stIdx))
Loop
解読はご自身でトライしてみてください。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excelにて、フォルダ内のTextファイルをマクロで統合すると文字化けしてしまう時の解消コード 4 2023/01/01 07:32
- その他(Microsoft Office) マクロVBAについて 1 2022/09/06 18:12
- Visual Basic(VBA) VBAで時間(00:00形式)を積算(足し算)したい 1 2022/11/15 17:04
- C言語・C++・C# c言語 プログラムのエラー 1 2023/02/11 20:31
- Visual Basic(VBA) サブフォルダ(データ)にある複数の.xlsxファイルのSheet3のA2セルの値で01から左側をB2 2 2022/08/14 15:46
- Visual Basic(VBA) VBA初心者です 検索した数字の行に色をつける 5 2023/02/13 14:22
- Visual Basic(VBA) ファイル名の右側を変更したい ファイル名:「1001日別売上」の左側へ「2022」を追加し、「202 6 2022/10/14 10:03
- Visual Basic(VBA) countifsについての質問 3 2023/03/08 13:45
- Excel(エクセル) LEFT関数で文字数を指定しないで取りだす方法 7 2023/06/30 09:49
- Visual Basic(VBA) ワークシートチェンジで曜日を表示する方法 1 2023/03/04 21:51
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
タンスとか、冷蔵庫とか 上から...
-
ヤマト運輸からくる荷物全てを...
-
レターパックライトが戻ってき...
-
宅配便の伝票の貼り方
-
佐川急便では、荷物が配達予定...
-
FTGカンパニーというところから...
-
「不在」の反対語を教えてください
-
再配達依頼で時間指定したのに...
-
配達員は来ているけど不在票が...
-
配達についてなんですがホテル...
-
ヤマト運輸で配達時間を指定し...
-
宅配便の依頼主が本人なのですが
-
Amazonの配達員が不在票を入れ...
-
佐川急便から 「tucロジスティ...
-
ドライバーからの着信について
-
書留便などの不在預かり期間の7...
-
ヤマト運輸の本社にクレームの...
-
「不在としております」は正し...
-
ヤマト運輸にされたこと酷いこ...
-
さきほど、私の家に届くはずの...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
タンスとか、冷蔵庫とか 上から...
-
ヤマト運輸からくる荷物全てを...
-
SDカードのルートパスを選択し...
-
簡易書留の事ですが日にち指定 ...
-
数式を教えてください!!! 0...
-
運送会社が時間指定配達をして...
-
エクセルで最大公約数を求めた...
-
必着という言葉をどう取るか?
-
個人の敷地を町道に指定して無...
-
ネットショップを運営していま...
-
ゆうパックの配達日指定
-
いつもお世話になります。
-
指定可燃物
-
エクセル VBAで文章にある複数...
-
遠音別岳原生自然環境保全地域...
-
晴空塔
-
太平洋フェリーの寝台等級のベ...
-
まんだらけ通販の時間指定は本...
-
宅配便の伝票の貼り方
-
佐川急便では、荷物が配達予定...
おすすめ情報