テキストファイルをエクセルにコピーするマクロ
エクセルマクロの初心者です
以下のようなテキストファイルをエクセルにコピーするマクロを作りたいです。
1、ボタンをクリックするとテキストファイルを選択する画面になる
2、テキストファイルを選択すると、その中から欲しい行のみエクセルのsheet3のA1、B1の順にコピーされる
3、テキストファイルのコピーしたい行はキーワードの間のもの
例(キーワードをAとBとする)
xxx xxxx,xxxxxx xxxx,A
yyyyy yyyyyyy yyyyyy,yyyy
zzzzzzz zzzzzzz z zzzz,B
このような形式のAとBの間にあるyyyyy yyyyyy yyyyyy,yyyyをコピーしたい
xxx xxxx,xxxxxx xxxx,A
yyyyy yyyyyyy yyyyyy,yyyy
xxx xxxx,xxxxxx xxxx,A
ttttt tttttt tttttt,tttt
zzzzzzz zzzzzzz z zzzz,B
このような場合も混在し、このときはtttt tttttt ttttt,ttttのみコピーする
つまり
xxx xxxx,xxxxxx xxxx,A
yyyyy yyyyyyy yyyyyy,yyyy
zzzzzzz zzzzzzz z zzzz,B
xxx xxxx,xxxxxx xxxx,A
yyyyy yyyyyyy yyyyyy,yyyy
xxx xxxx,xxxxxx xxxx,A
ttttt tttttt tttttt,tttt
zzzzzzz zzzzzzz z zzzz,B
このようなテキストに対して実行すると、Sheet3に
yyyyy yyyyyyy yyyyyy,yyyy
ttttt tttttt tttttt,tttt
となるようにしたい
詳しい方、知恵を貸してください
よろしくお願いします。
お礼
taketan_mydns_jp さん 98%、解決しました。 助かりました。 本当にありがとうございました。 残りの2%分は上の「この回答への補足」に書きました。
補足
残り2%分 (1)パターンの前後の改行の残ります。(改行のみの一行) そこで、 $pat = "/<!--start-->\n(.+)<!--end-->\n/ms"; と指定しましたが、合致しませんでした。 (2)根本的にことですが、 パターンで合致した、 $data2 = $reg[1]; 「preg_match ($pattern, $subject ,$matches)」の説明を読みました。 「matches を指定した場合、検索結果が代入されます。 $matches[0] にはパターン全体にマッチしたテキストが代入され、 $matches[1] には 1 番目ののキャプチャ用サブパターンにマッチした 文字列が代入され、 といったようになります。 」 とありますが、 $data2 = $reg[0]でも、同じ結果でした。 もう少し、具体的に示していただけると幸いです。