エクセル2013です。以下のようなテキストファイルをエクセルのセルに分割して↓のようにセルに取り込むマクロを教えて下さい。
12 ☆新潟・(1000)=(ルアー)「SD除外」(竹内)
↓
12 新潟 (1000) (ルアー) SD除外 竹内
スペースと "☆" と "・" と "=" と "「" と " 」" と "(" と " )" で区切りたいのです。また、()が複数あり、最後の()で区切りたいのです。テキストファイルは以下で開いています。
Workbooks.OpenText Filename:= _
"C:\Users\Desktop\Data.txt",
よろしくお願いします。
No.2ベストアンサー
- 回答日時:
こんばんは
実際のデータのバリエーションがどの程度あるのかわかりませんけれど、以下のように変えて解釈しました。
・全角文字の スペース、☆、・、=、「、」を区切り文字として分割
(間に空白文字ができた場合は無視する)
・最後の文字辺の最初の「(」、最後の「)」は削除する
>テキストファイルは以下で開いています。
ご提示の開き方だと、既に新しいブックのA列に各行が読み込まれた状態になるものと推測します。
通常なら、テキストファイルをシークエンシャルに1行ずつ読み込んで処理するところかと思いますが、すでに読み込んでいるようですので・・
『A列の文字列を、上記のルールで分割して、B列以降に記述する』
という形にしてみました。
(読み込んである文字列は、文字化けしていないことを前提としています)
Sub Q13088575()
Dim reg, v, c As Range
Dim s As String, n As Long
s = "VBScript.RegExp" '←投稿時にエラーになるので分割してあります。
Set reg = CreateObject(s)
reg.Global = True
With ActiveSheet
For Each c In Range(.Cells(1, 1), .Cells(Rows.Count, 1).End(xlUp))
reg.Pattern = "[ ☆・=「」]"
s = reg.Replace(c.Text, vbCr)
reg.Pattern = vbCr & "+"
v = Split(reg.Replace(s, vbCr), vbCr)
n = UBound(v)
If n > 0 Then
reg.Pattern = "^(|)$"
v(n) = reg.Replace(v(n), "")
c.Offset(, 1).Resize(, n + 1).Value = v
End If
Next c
End With
End Sub
※ 区切り文字の解釈が違っている場合は、パターンを修正することで対応可能ではないかと思います。
※ 1行ずつ読み込む方式の場合も、ループの制御を変えることで対応可能と思います。
希望通りの結果が出ました。ありがとうございました。
スペースと(途中の括弧ではなく)最後の括弧を区切りとする記述は、どこか教えていただけないでしょうか。
No.3
- 回答日時:
No2です。
>希望通りの結果が出ました。
まずは、良かったですね。
>スペースと(途中の括弧ではなく)最後の括弧を区切りとする記述は、
>どこか教えていただけないでしょうか。
スペースは他の文字(☆、・など)と同様なので、まとめて扱っています。
正規表現を設定しているのが、
reg.Pattern = "[ ☆・=「」]"
で、実際に置換しているのが、
s = reg.Replace(c.Text, vbCr)
の部分になります。
最後の括弧は、区切り文字で分割した後に、同様の方法で
reg.Pattern = "^(|)$"
v(n) = reg.Replace(v(n), "")
の部分で取り除いています。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/16 14:36
- Excel(エクセル) 【VBA】指定フォルダに格納中のテキストファイルをエクセルで処理し結果のエクセルを新規フォルダに保存 1 2022/03/25 14:19
- Visual Basic(VBA) エクセルのマクロについて教えてください。 5 2023/07/14 12:49
- Visual Basic(VBA) VBAでエクセルをtxtに変換するとエクセルでカンマを含む文字数字がtxtでは「""」付にならないよ 1 2022/08/27 12:17
- Excel(エクセル) セルの値からファイルを複数作りたい 2 2022/10/06 12:42
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/07/15 16:33
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/08/08 15:45
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/21 09:42
- Excel(エクセル) エクセルのマクロについて教えてください。 2 2023/02/04 12:47
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/08 11:02
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・【大喜利】【投稿~11/12】 急に朝起こしてきた母親に言われた一言とは?
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・好きな「お肉」は?
- ・あなたは何にトキメキますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・ハマっている「お菓子」を教えて!
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルのセル内でタブキーの...
-
エクセルのグラフでデータテー...
-
エクセルVBA 長さ0の文字列をNu...
-
エクセルの神よ、ご回答を! エ...
-
文字をアルファベット順に3つ...
-
VBでリアルタイムにグラフを...
-
エクセルで3Dの円錐形を作成...
-
エクセルにて指定文字数以上の...
-
エクセル 文字の先頭4文字だ...
-
グラフの参照範囲を自動的に変...
-
VBA初心者です。電話番号の数字...
-
特殊記号を一括で消去または置...
-
エクセルのセルが突然選択でき...
-
エクセルの複数のセルを一括で...
-
EXCELで○ヶ月を○年○ヶ月に変換...
-
A1セルに入力したら、入力時間...
-
Excelの入力規則で2列表示したい
-
エクセルで勝手に表示された打...
-
複数の文字列のいずれかが含ま...
-
数式が入ったセルを含めて、数...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルのセル内でタブキーの...
-
エクセルで3Dの円錐形を作成...
-
エクセル 文字の先頭4文字だ...
-
エクセルで全波整流回路の波形
-
ウェブから貼ったドロップダウ...
-
エクセルのグラフでデータテー...
-
差し込み印刷で文字化け!
-
エクセルにて指定文字数以上の...
-
エクセルVBA 長さ0の文字列をNu...
-
エクセルの神よ、ご回答を! エ...
-
文字をアルファベット順に3つ...
-
VBA初心者です。電話番号の数字...
-
エクセルオンラインのみ勝手に...
-
リンクデータが更新できない ...
-
#DIV/0!があるデータの折れ線...
-
エクセル2000:phonetic関数で...
-
【エクセル】原点を通るグラフ...
-
エクセルの変換
-
エクセルのセルが突然選択でき...
-
日報のデータを月報にデータを...
おすすめ情報