
エクセル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を探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一番好きなみそ汁の具材は?
- ・泣きながら食べたご飯の思い出
- ・「これはヤバかったな」という遅刻エピソード
- ・初めて自分の家と他人の家が違う、と意識した時
- ・いちばん失敗した人決定戦
- ・思い出すきっかけは 音楽?におい?景色?
- ・あなたなりのストレス発散方法を教えてください!
- ・もし10億円当たったら何に使いますか?
- ・何回やってもうまくいかないことは?
- ・今年はじめたいことは?
- ・あなたの人生で一番ピンチに陥った瞬間は?
- ・初めて見た映画を教えてください!
- ・今の日本に期待することはなんですか?
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・【お題】大変な警告
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・最強の防寒、あったか術を教えてください!
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルのセル内でタブキーの...
-
エクセルで3Dの円錐形を作成...
-
エクセルの神よ、ご回答を! エ...
-
日報のデータを月報にデータを...
-
ウェブから貼ったドロップダウ...
-
エクセルのデータを自動的にweb...
-
Excel関数で教えて下さい。
-
エクセルにて指定文字数以上の...
-
エクセルで関数グラフを描きた...
-
散布図や折れ線グラフにエラー...
-
エクセルのグラフでデータテー...
-
文字を入力するだけで、強制終...
-
エクセル2000:phonetic関数で...
-
エクセル 文字の先頭4文字だ...
-
エクセルで1つのセル内にある複...
-
エクセルオンラインのみ勝手に...
-
エクセルについて
-
EXCELで○ヶ月を○年○ヶ月に変換...
-
A1セルに入力したら、入力時間...
-
エクセルの複数のセルを一括で...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルのセル内でタブキーの...
-
エクセルで3Dの円錐形を作成...
-
エクセルのグラフでデータテー...
-
エクセルオンラインのみ勝手に...
-
エクセルの神よ、ご回答を! エ...
-
エクセル 文字の先頭4文字だ...
-
差し込み印刷で文字化け!
-
文字をアルファベット順に3つ...
-
エクセルにて指定文字数以上の...
-
エクセルVBA 長さ0の文字列をNu...
-
特殊記号を一括で消去または置...
-
エクセルマクロでセルの文字サ...
-
エクセル データ追加するもグ...
-
ウェブから貼ったドロップダウ...
-
日報のデータを月報にデータを...
-
VBA初心者です。電話番号の数字...
-
エクセルで全波整流回路の波形
-
JANコードのチェックデジットを...
-
文字を入力するだけで、強制終...
-
エクセルのテーブルで自動拡張...
おすすめ情報