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