![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?8acaa2e)
下記のような記述だと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.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
解読はご自身でトライしてみてください。
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)
お探しの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ランキング
-
タンスとか、冷蔵庫とか 上から...
-
簡易書留の事ですが日にち指定 ...
-
ヤマトでクール便を時間指定2回...
-
まんだらけ通販の時間指定は本...
-
指定可燃物
-
折れて届いたメール便。苦情を...
-
ゆうぱっくの日時指定!!
-
配達員は来ているけど不在票が...
-
佐川急便では、荷物が配達予定...
-
宅配便の伝票の貼り方
-
Amazonの配達員が不在票を入れ...
-
「不在」の反対語を教えてください
-
佐川急便が嫌いなので大事な荷...
-
「不在としております」は正し...
-
郵便局から不在連絡票が入って...
-
ドライバーからの着信について
-
レターパックライトが戻ってき...
-
配達員さんの事が気になってい...
-
さきほど、私の家に届くはずの...
-
間違った不在連絡票はどうした...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
タンスとか、冷蔵庫とか 上から...
-
ヤマト運輸からくる荷物全てを...
-
SDカードのルートパスを選択し...
-
ゆうパックの配達日指定
-
必着という言葉をどう取るか?
-
ヤマトノ小さな引越便は日にち...
-
消防法10条について
-
エクセルで最大公約数を求めた...
-
エクセル VBAで文章にある複数...
-
簡易書留の事ですが日にち指定 ...
-
遠音別岳原生自然環境保全地域...
-
届かなかった宅急便・・・これ...
-
数式を教えてください!!! 0...
-
ネットショッピングして 今日届...
-
指定可燃物
-
ヤマト、ゆうパック、佐川など...
-
セルを飛び越えて範囲指定する場合
-
神戸市中央区の燃えるゴミの袋...
-
太平洋フェリーの寝台等級のベ...
-
消防法 薬品保管について
おすすめ情報