![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
vbaで複数行のデータの一部を抜き出そうと思っています。
下記のようにすると、抜き出したデータの先頭に改行がついてしまいます。
何かいい方法はないでしょうか。
data = "start" & vbCrLf & "ABC" & vbCrLf & "DEF" & vbCrLf & "GHI" & vbCrLf & "end"
Set re = New RegExp
re.Pattern = "start((.|\n)*?)end"
re.MultiLine = True
Set mc = re.Execute(data)
For i = 0 To mc.Count - 1
MsgBox m.SubMatches(0)
Next i
上記を実行すると
vbCrLf & "ABC" & vbCrLf & "DEF" & vbCrLf & "GHI" & vbCrLf
となってしまいます。
”ABC”から抜き出す場合、正規表現をどう書けばいいのでしょうか。
よろしくお願いします。
No.2ベストアンサー
- 回答日時:
こんにちは。
vbCrLfを表すパターンは、
\r\n
です。
Sub Re8780307()
Dim re As VBScript_RegExp_55.RegExp
Dim mc As VBScript_RegExp_55.MatchCollection
Dim m As VBScript_RegExp_55.Match
Dim Data
Data = "start" & vbCrLf & "ABC" & vbCrLf & "DEF" & vbCrLf & "GHI" & vbCrLf & "end" & vbCrLf & _
"start" & vbCrLf & "JKL" & vbCrLf & "MNO" & vbCrLf & "PQR" & vbCrLf & "end"
Set re = New RegExp
re.Global = True
re.MultiLine = True
re.Pattern = "start(\r\n((.|\r\n)*?)\r\n)end"
Set mc = re.Execute(Data)
For Each m In mc
Debug.Print "■"; m.SubMatches(1); "■"
Next
End Sub
みたいなことをなさりたいのでは?
ありがとうございます。
すっかり、「¥r」の存在を忘れていました。
たぶん、これでスッキリ解決だと思います。
今からテストしてみます。
No.1
- 回答日時:
> re.Pattern = "start((.|\n)*?)end"
ここでstartの後の改行をかっこの外に出しておくべきなのでは?
re.Pattern = "start\n((.|\n)*?)end"
ありがとうございます。
今回、質問に書いたプログラムと、実際のプログラムは少し違います。
プログラムの一部を、簡略化しています。
実際は、正規表現でマッチしたのを、分割してコレクションに入れています。
その分割したデータを、再分割するところのプログラムが、今回質問したところです。
そこでは、なぜか正規表現がうまくマッチしません。
>re.Pattern = "start\n((.|\n)*?)end"
これも試してみましたが、startの文字を入れるとマッチしなくなります。
どうも、コレクションの挙動がおかしいので、その辺から見直してみます。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBAが止まります。 3 2022/08/31 14:09
- Visual Basic(VBA) エクセルのマクロを使ってメールを送る方法について教えてください 2 2022/03/29 01:36
- Visual Basic(VBA) VBAでoutlook365が起動しません。 4 2022/08/25 13:31
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2022/03/28 14:52
- Excel(エクセル) 2つのVBAを一緒にしたら機能しなくなりました(エクセル) 7 2022/06/02 12:41
- Visual Basic(VBA) vbaを早くしたい 5 2022/09/09 10:58
- Visual Basic(VBA) エクセルのマクロについて教えてください。 7 2023/07/04 09:18
- Visual Basic(VBA) Excel-VBAでのファイルの開き方 4 2023/02/14 11:01
- Visual Basic(VBA) VBAにてメール作成した際、一部指定箇所のみ赤文字にしたいです。 下記の内容ですと作成されたメール本 1 2022/04/27 13:31
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/07/03 09:11
このQ&Aを見た人はこんなQ&Aも見ています
-
「環境が人を育てる」って本当?環境によって人格や生き方は本当に変わるのか
環境が人生に与える影響は実際どれほどのものなのか、専門家の田宮由美さんに伺った。
-
VBScriptの正規表現で半角スペースをマッチ
その他(プログラミング・Web制作)
-
エクセルでエラーが出て困っています。
Excel(エクセル)
-
改行を含んだ文字列を正規表現で置換するには?
Visual Basic(VBA)
-
-
4
ExcelのVBA 正規表現でタブを利用するには?
Excel(エクセル)
-
5
VBAでの Replace関数で、ワイルドカードは使えないのでしょうか?
Visual Basic(VBA)
-
6
変数名の取得
Visual Basic(VBA)
-
7
文字列からタブコードを取り除きたい
Visual Basic(VBA)
-
8
VBAでループ内で使う変数名を可変にできないか。
Visual Basic(VBA)
-
9
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
10
VBScript.RegExp正規表現での後方参照
Visual Basic(VBA)
-
11
vbaの正規表現で、マッチした一部分を抽出したい
PowerPoint(パワーポイント)
-
12
エクセルVBA 最終行はlast row ? end row ?
英語
-
13
VBAでブックを非表示で開いて処理して閉じる方法
Excel(エクセル)
-
14
VBAのRegExpで後方一致/不一致は機能するが前方一致/不一致は機能しない件(仕様ですか?)
Microsoft ASP
-
15
Excel vbaで別ブックのコマンドボタンをクリック
Visual Basic(VBA)
-
16
サクラエディタは複数行に渡る文字列の正規表現検索はできますでしょうか?
フリーソフト
-
17
VBのFunctionで、配列を引数や返却値にできますか?
Visual Basic(VBA)
-
18
【VBAユーザーフォームで閉じるボタンを表示したくない】
Visual Basic(VBA)
-
19
VBAで、なぜかSendkeyが効きません。
PowerPoint(パワーポイント)
-
20
フォームを開くときに、コンボボックスの値を選択(アクセスVBA)
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
縦横比率のを変えずに画像のサ...
-
テキストファイルから読み込ん...
-
四角形の端っこをドラッグした...
-
ラッコって?
-
看護師です。体温表のマクロを...
-
VBAで改行の入ったデータの正規...
-
VBScriptでMsgBoxのYesNoボック...
-
【VB.NET】別Formのボタンが押...
-
C# chart controlの透過について
-
static関数がmapファイルに載ら...
-
プログラミング、アーキテクチ...
-
ACCESSフォームで、入力から一...
-
Actionscriptでふわふわ感を再...
-
画面の範囲選択
-
アセンブリ言語のcasl2について...
-
'2465'指定した式で参照してい...
-
POIでのテキストボックス作成に...
-
C言語でのマウスを移動とマウス...
-
python ボタンを押すと複数の関...
-
photoshopで書いた四角の枠の中...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAで改行の入ったデータの正規...
-
VBAユーザーホームテキストボッ...
-
テキストファイルから読み込ん...
-
Flashで外部jpgファイルをmcに...
-
FlashでドラッグしたMCをリセッ...
-
AS3 mc0~5をまとめて処理する
-
upc 7915と mc7915ctは互換性有...
-
ラッコって?
-
縦横比率のを変えずに画像のサ...
-
テキスト入力
-
ステージの背景画像のみ拡大縮...
-
eval関数を利用して複数の処理...
-
ランダムに mcを連続attachM...
-
外部SWFファイルを再生バーでコ...
-
四角形の端っこをドラッグした...
-
看護師です。体温表のマクロを...
-
as3 addchildで生成したMCにリ...
-
Flashからリンクする際のconfir...
-
以下のActionScriptをスッキリ...
-
Suzukaで一行ニュースティッカ...
おすすめ情報