• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Excel VBA 文字列分割の方法で)

Excel VBA文字列分割の方法とは?

xls88の回答

  • xls88
  • ベストアンサー率56% (669/1189)
回答No.4

>No.1 この回答へのお礼 返信をされる姿勢は評価します。 しかしダメだしだけで終わられると辛いものがあります。 提示したコードは弄り倒してください。 開き括弧と閉じ括弧は一対 その中にカンマは1つということなら (例2) Dim txt As String Dim v As Variant Dim i As Long txt = Range("A1").value v = Split(txt, ",") For i = LBound(v) To UBound(v) If v(i) Like """(*" Then If v(i + 1) Like "*)""" Then MsgBox v(i) & "," & v(i + 1) i = i + 1 End If Else MsgBox v(i) End If Next i 括弧で括られた中にカンマが複数あるなら もう一工夫必要です。 他にもアプローチの仕方があると思います。 文字列のパターンは提示例以外にはありませんか?

pollux0375
質問者

お礼

xls88さん、大変申し訳ありませんでした。 知りたかったのはVBAで頑張る必要があるのか、それとも簡単な関数か命令が あるのかということでした。  (EXCELがCSVを読むとき自動的にカンマで区切っていたので) 目的は、Wordの文章をExcelで解析するためCSVに書き出し、Excelで処理した かったので、基本的に文字列のパターンは決まったものはありません。 データは本文の他に、ページ番号や行番号、テキストボックス名などをセット で書き出そうとしていましたので、本文中に””やカンマが含まれているとき の簡単な解決策がないだろうかと思った次第です。 質問のしかたが悪くご面倒をかけてしまい、大変申し訳ありませんでした。 (EXCELでの処理結果をWordでも再び取り込みたかったので、ExcelとWordの 両方で同じことをする必要がありました。  なので、セットにして書き出すのをやめ、ページ番号や行番号、本文などを それぞれ別のレコードとして書き出し、読み込むことにしました。) でもおかげでいろいろなことが分かってきました。ありがとうございました。

関連するQ&A

  • 文字列の分割

    "abcdefghijk"というような文字列を  例(1):abcd、efg、h、i、jk  例(2):ab、cdefg、h、ijk  例(3):a、b、c、de、f、ghijk のように分割したいのですが、substringを使って取得するしかないでしょうか。 素人考えですみませんが、 class test{ char[] a = new char[4]; char[] b = new char[3]; char c; char d; char[] e = new char[2]; } のようなクラスを作り、 test t = new test(); t = "abcdefghijk"; などどすることで、分割する方法はないでしょうか。  #上記を試したところ、互換性のない型とエラーになりました。 分割するパターンが複数あり、文字列が長くなるとsubstringを記述する回数が増え、 終了インデックスを間違えそうで。  #間違えないようにすればいいだけの話ですが。 substring以外の方法、またはsubstringの上手な使い方がありましたら、教えていただけないでしょうか。 よろしくお願いします。

    • ベストアンサー
    • Java
  • エクセルで数字とアルファベットと文字列を分割する方法

    こんばんは。 エクセルのセルで数字とアルファベットの文字列を分割する方法を教えて下さい。 100AB3.4C → "100" "AB" "3.4" "C" 間にスペースやカンマなど無く、文字数は異なります。 数字は小数点がある場合と無い場合があります。(上記の "100" "3.4" のように) 同じ列に同様のデータが数件~数千件あり、まとめて分割したいです。 関数もしくはマクロ(VBA)で可能であれば教えて下さい。 最近マクロの勉強を初めたのですが、方法が思いつきません。。。 宜しくお願いします。

  • VBA 文字に半角が含まれているか確認する方法

    VBAで文字に半角が含まれているか調べる方法を教えて頂けないでしょうか?全角が含まれているかのチェックはできたのですが。。。 下記は全角が含まれているかのチェックです。 If Asc(Mid(文字列, i, 1)) < 0 Or Asc(Mid(文字列, i, 1)) > 256 Then   処理 End If

  • 文字列からの切り取り

    11111,AAAA,hogehoge,abcde 上記のような文字列から1個目のカンマから2個目のカンマまで(AAAA)を 抜き出したいのですがどういう方法がありますでしょうか? できればソース付きでご教授ください。 よろしくお願いします。

  • Excel VBA 同じ文字を含む文字列のフィルタ方法

    Excel2000 VBAの質問です。 リストの中に文字列があり、フィルタにより抽出したいのですが、 Advancedfilterを使うと先頭から同じ文字がある場合、両方抽出されてしまいます。 例   A    B 1 MS-06 … 2 MS-06S … : MS-06で抽出しようとすると、MS-06Sも抽出されてしまいます。 抽出したい文字列は3つ以上あります。 どのようにすればよいでしょうか?アドバイスをお願いします。

  • VBAの文字列分割

    A1セルにAAA VVV EEE TTT YYYYY UUUUUU WW RRRR WW TTTT という文字列が入力されています。 VBAによって、B1セルから順序右へ空白ごとに分割した文字列を代入することができますか? できれば、空白の数に制限なくできるものを所望しています。 もし不可能であれば最低でも10個までのものだと助かります

  • エクセルの文字列操作

    住所録の様式で A列にNo、B列に氏名、C列に住所のファイルがあり、 C列の住所で、1個のセルに何故かしら「住所と電話番号」が入っています。 住所と電話番号を夫々別の列に分割したくて、 電話番号は、RIGHT 関数で取り出しました。 住所は、文字数が一定でないので、LEFTまたはMID関数では出来ません。 ここで質問です 住所データの末尾に混在する電話番号は10文字の場合に限定し、 文字数の異なる、住所(○○市XX町△△番地○△荘2-103など)のみ 抽出する方法はありませんか。 なお、VBAなどは無知です、エクセル関数だけの操作があれば教えてください。

  • 秀丸の正規表現で文字列を切り取りしたい

    秀丸で文字列の切り取りをおこないたいと思います。例えば、下記のような文字列があるとします。 あいうえお,abcde,かきくけこ fghij,さしすせそ,klmnopq やりたいことは、2つです。 1. 1つめのカンマまでの抜き出し。上記の場合、下記の文字列を抜き出し。 あいうえお fghij 2.1つ目のカンマから2つ目のカンマまでの文字列の抜き出し。上記の場合、下記の文字列を抜き出し。 abcde さしすせそ 上記の条件に検索でヒットさせる方法はわかるのですが、はたして文字列の切り取りなんてできるのか?という疑問があります。よろしくお願いします。

  • 文字列分割

    カンマを含む項目があります。カンマまでの文字列を抽出したいです。なお、カンマの個数は未定です。 例えば A aaa,bbb,ccc ↓ P Q R aaa bbb ccc ※A,P,Q,Rは項目名 となるような、テーブルを作成したいです。(select結果でもよいです。) どうか、ご教授お願いします。

  • 【エクセル】文字列分割の関数

    エクセルで文字列を分割する数式を探しております。 以下のデータを 右から4桁とそれ以外に分割したいのです。 20002  → 2 0002 30003  → 3 0003 40010  → 4 0010 511000 → 51 1000 1019550 →101 9550 1012279 →101 2279 2019220 →201 9220 3338850 →333 8550 たとえばLEFT関数やRIGHT関数ですと、分割というよりも 抽出になってしまい、私の求めているものとは異なってしまいます。 考えが煮詰まってしまい、これ以上進めない状態です。。。 何卒よろしくお願いいたします。