Basic(VBA)入力中の回答があります。ページを離れますか?※ページを離れると、回答が消えてしまいますページを離れるA回答を続ける入力中のお礼があります。17:47回答数:3件いつもお世話になっています。VBA学習者です(手短に説明するため文章がぶっきらぼうになることをご容赦ください)。以下のようなテキストがあったとします。test.このテキストから括弧で括られた部分(ここでは「ユニット」と呼びます)を取り出すのは比較的容易です。「サンプルテキストB」のように「ユニット」が入れ子になっている場合にも対応する必要があるため以下のコードを書きました。これでとりあえず、入れ子の一番外殻のユニットを抽出することができました(「結果A」がシートに書き出されます)。ここから更に、入れ子になっている内側のユニットも取り出したいのですが、これが意外とうまくいきません。「結果B」のような結果を得るには、どのようにしたらよいでしょうか。下に示した処理方法にこだわるものではないので、もっと良いアイデアがあれば大歓迎です!※ここに示したサンプルは1行のみですが、実際には数千行(ユニットがない行も含む)からなるファイルをいくつも連続して処理するので、出来るだけシンプルに高速で処理できるようにしたいと思っています。Sub通報するこの質問への回答は締め切られました。21:14完全に内側の部分のタグを抜き出すなら正規表現を組み合わせて処理できます。一致文字列Next特定のパターンを抜き出したり置換するのに正規表現は便利です。文字を数えるのも楽ですしね。正規表現がどんな働きをするかデバッグ実行で1ステップずつ実行してみてください。ご回答ありがとうございます!実は、私も当初は正規表現での処理を試みていたのですが、nda23が活用されていた正規表現でヒットした文字列のコレクション(?)の存在や、正規表現のパターンを動的に変化させる手法を知らなかったために挫折したのでした。私が書いたコードで外殻の「ユニット」を取り出した上で、nda23さんにご教授いただいたプロシージャをCallで呼べば「結果B」が得られそうです。意図した結果が得られただけなく、今後の正規表現を使用した処理の可能性も広がりました。ありがとうございました。参考までに記載します。これで期待する結果になるのではないでしょうか。JavaScriptの/~/は正規表現です。FunctionJavaScriptのStringオブジェクトにはreplaceメソッドがありますが、このメソッドの第2パラメータに関数を指定すると、正規表現が一致した文字と一致した位置をパラメータにして呼び出します。正規表現は"<"または">"としています。<>が揃ったところで、内側の解析を順次、実行しています。配列は外側の<>から内側の<>と、ネストレベルが下がるほど後方になるように並べ替えています。通報するこの回答へのお礼お礼が遅くなってしまいました。VBAだけじゃなくて他の言語もしっていると便利ですね。PHPとかJAVAのようなWave系で使われる言語もちょっと知っときたいなぁ、と思っていたところです。お陰さまで、モチベーションがちょっとあがりました。プログラミング言語だけじゃなくて外国語にも手を出しているので、JAVAの勉強はいつになることやら。ご教示ありがとうございました。20:34こういうのは、一つのsubやfunctionで全部やろうとしないで、1部だけ分解するsub/functionを何度も適用するのがいいと思います。結果Aの1つめをさらに分解して....と分解できなくなるまで繰り返す、というものです。そのままだと、セルが上書きされるとか、分解できない場合の判定とかができないので、いろいろと工夫が必要ですが。functionにして、結果のunitArray()をそのまま返すとか、終了時の最後のセルの場所を返すとか。ご回答ありがとうございます。実は、私も実際に文字列を抽出する処理はサブルーチンにして、繰り返し呼び出せばいいじゃないかと思っていたのですが、「入れ子がなくなるまで」の判定をどうしようとか、サブルーチンの戻り値をどう配列に入れたらいいだろう、というところで良くわからなくなり挫折したのでした。通報するお探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!全カテゴリから検索このカテゴリから検索Q質問する(無料)このQ&Aを見た人はこんなQ&Aも見ています好きなおでんの具材ドラフト会議しましょう肌寒くなってきて、温かい食べ物がおいしい季節になってきましたね。1番好きなおでんの具材を教えてください。ノミネートされる言葉を書けるだけ書いてください。Basic(VBA)好きなおでんの具材ドラフト会議しましょう肌寒くなってきて、温かい食べ物がおいしい季節になってきましたね。1番好きなおでんの具材を教えてください。ノミネートされる言葉を書けるだけ書いてください。E仕様書について2次元動的配列の第一引数のみを...delphiで配列を、コピーするには。DOCOMO質問して、直接聞いてみよう!Q質問する(無料)Q&A検索goo検索gooでdポイントがたまる!つかえる!dアカウントでログインログインはdアカウントがおすすめです。詳細はこちらログイン新規登録する(無料)教えて!gooの新規会員登録の方法が新しくなりました。新規会員登録(無料)教えて!gooの新規会員登録の方法が新しくなりました。「ニックネーム」の登録をすることで、教えて!gooの会員登録が完了となり、投稿ができるようになります!​gooIDログアウト。