• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VBA 1セルからスペース区切り 文字列の切り取り)

VBAで文字列の切り取り方法

このQ&Aのポイント
  • VBAを使用して、1つのセルからスペースで区切られた文字列を切り取る方法について説明します。
  • 上記の例の場合、セルに貼り付けられた文字列を各要素に分割するために、正規表現を使用することがおすすめです。
  • この方法を使用すると、任意の文字列をスペースで区切って切り出すことができます。

質問者が選んだベストアンサー

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.3

>別シートへの切り出しはこんなんでよろしいのでしょうか? こんなカンジでいいんじゃないでしょうか。 sub macro3()  worksheets("Sheet1").range("A:A").copy _   destination:=worksheets("Sheet2").range("A1")  worksheets("Sheet2").range("A:A").texttocolumns _   destination:=range("A1"), _   datatype:=xldelimited, _   consecutivedelimiter:=true, _   space:=true end sub #つまり 追加のご質問はコピーがしたいということのようですから,参考にしてください。 #それと 違うことをやりたくなったのでしたら,まず最初のご相談は解決で閉じてから,また新しいご相談として投稿し直してください。 #オマケ 大奮発です。 sub macro4()  dim i as long  dim a as variant  on error resume next  for i = 1 to 3   a = split(application.trim(worksheets("Sheet1").cells(i, 1)), " ")   worksheets("Sheet2").cells(i, "A").resize(1, ubound(a) + 1) = a  next i end sub

ra11242010
質問者

お礼

ありがとうございます。 sub macro4() が理解できましたのでこちらを活用させて頂きます。 追加質問の件は以後気をつけます。 ご指摘ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.2

方法1) データメニュー(データタブ)の「区切り位置」を使い,「カンマやタブで区切られた…」から「スペース」にチェックを入れて文字列を切断する という操作を新しいマクロの記録でマクロに録って,活用してみてください。 方法2) sub macro2()  dim h as range  dim a as variant  for each h in range("A1:A3")   a = split(application.trim(h), " ")   h.offset(0, 1).resize(1, ubound(a) + 1) = a  next end sub #対象範囲(A1:A3)の取得はご質問の本筋じゃないので割愛しています

ra11242010
質問者

お礼

ありがとうございます。 いろいろやってみたのですが、別シートへの切り出しはこんなんで よろしいのでしょうか?(なんか非効率のような気がするのですが) Sub macro2()   Dim h As Range   Dim a As Variant    For Each h In Range("A1:A3")    a = Split(Application.Trim(h), " ")    h.Offset(0, 1).Resize(1, UBound(a) + 1) = a   Next Worksheets("Sheet2").Range("A1:IV65536").NumberFormat = "@" Worksheets("Sheet1").Range("B1:IV65536").Copy Destination:=Worksheets("Sheet2").Range("A1:IV65536") End Sub

全文を見る
すると、全ての回答が全文表示されます。
  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.1

例示のデータがセルA1・A2・A3として。 セルB1に式[=trim(a1)]を設定、それをセルB2・B3にコピー。 その上で、式の結果をコピーして、形式を選択して貼り付け>値 でペースト。 その結果(値)を、区切り位置を指定する>スペース で列に分割。 でどうでしょう?

ra11242010
質問者

お礼

ありがとうございます。 セル単位で「区切り位置を指定する」コマンドの存在を知りません でしたので参考になりました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 300個の文字列を結合し1個のセルに

    ファイル名変更ソフト「Namery」に使うのですが、セル1個に 001> 001a|002> 001b|003> 001c|004> 002a|005> 002a|006> 002c このようにして 300> 100c| までの文字列つくれませんか? VBAをお願いしたいのです。あるいは下記のD1からD300のセルの文字列を合体してE1に表示、でも良いのですが。 VBAを知らないので、次のような作業を始めましたが途中で疲労困憊です。 A1に001をいれオートフィルでA300までつくり B1に半角スペース+001a B2に半角スペース+002b B3に半角スペース+003c としてから 100c迄オートフィルし C1 に=CONCATENATE(A1,B1) C1をコピーD1に「値のみ貼り付け」してからオートフィル。 出来たD1からD300の文字列を1セルの文字列にするために、エクセルの30個までの制限のため何段階にも作業を分けなければなりません。 ファイル名変更ソフト=Namery の[連続置換・正規表現]に文字列を入れ目的を果たしたいのです。 http://www.vector.co.jp/soft/win95/util/se217399.html

  • 【VBA】 文字列の中から指定の文字列を取り出す

    VBAで文字列から指定の文字のn番目からn+1番目までの文字列を取り出すことは可能でしょうか? A1セルに下記の文字列があった場合、「1番目の半角スペースから2番目の半角スペースまでの文字列」を取り出したいのです。 5 53 00 8R この場合、53を取り出したいというわけです。 また、可能でしたら「最後の半角スペースから文字列の最後まで」を取り出す方法も教えていただけるとありがたいです。 この場合は8Rとなります。 InStr関数を使えばできるかもと思ったのですが、できそうなものが思い浮かびません。 どなたか教えていただけませんでしょうか。 よろしくお願いいたしますm(_ _)m

  • Excelでカンマ区切りの文字列をセルに分割する?

     住所録をExcelにコピーしたら、 カンマ区切りに一つのセルに入ってしまいました。 ◇カンマごとに一つのセルに分割して文字列を分ける。 ◇氏と名の間は半角スペースでカンマでは有りませんが、   二つのセルに分ける。 上記について分ける関数を教えてください。    

  • エクセル関数で文字列の中のスペースの有無を調べたい。

    エクセル関数について教えてください。 全てが半角のはずの文字列・A1セルについて、下記について調べたいです。 1.同列(A列)の他のセルに入力されている文字列とのダブリチェック(同じ文字列がないかの確認)     *ダブリがある場合"ダブリ"表示 2.A1の文字列中のスペースの有無        *スペースがある場合"スペース"表示 3.A1の文字列中に全角が混ざっていないか      *全角がある場合"全角"表示 1.については、 =IF(COUNTIF(A:A,A1)>=2,"ダブリ","") の関数を使用してチェックが出来ると思うのですが、 2.については、関数TRIM 及び 置換での削除方法、3.については、 関数ASC での半角変換 しか手段が見つかりませんでした。 上記のものをマクロを組んでいる中に組み込みたいので、出来れば、上記3つの結果をひとつのセル(C1)に表示させたいのですが、可能でしょうか? *A1セルに上記3つが当てはまる場合、C1セルに "ダブリスペース全角" と表示させたい。 どれについて引っかかっているのかがわかればいいので、記号などに置き換えてもかまいません。 可能な限り調べては見たのですが、私の知識ではどうにもなりませんでした。 もし、いい案などがあればご紹介してください。 宜しくお願いいたします。

  • (VBA) 複数スペースで文字列を分割する

    文字列中の文字を 複数の半角スペースで分割するコードを教えて下さい。   (半角スペースの数は、2個以上一定ではありません。) 但し、文字列中には複数スペース群が複数回ある場合がありますが  分割は、最初の複数スペース群とします。 例えば、 「SetOne_Vol xn xo サンプル」 の場合は、 「SetOne_Vol」と「xn xo サンプル」に分割 (分割した最初のスペース群の次にあるスペース群は何も変更なく   同数のスペースを書き出します。) 但しセミコロン「;」やコロン「:」で始まる 文字列は対象外でそのまま分割せずに書き出します。 添付画像を参照ください。   A: 元の文字列 B: 分割文字列(左側) C: 分割文字列(右側) ---------------------------------- Office_2019 / Windows10

  • EXCEL VBA 文字列

    A列のセルに、文字列が以下の様に並べられています。 【あああああ】いいいいいいううううううえええおおおお 上記のような場合に、”あああああ”と【】の文字だけを取り出して、B列に表示させることはマクロで可能でしょうか?但し、【】のなかの文字数はセルによりバラバラです。 ネットでかなり検索したのですが、自分では解決できませんでした。 どうか、よろしくお願いいたします。

  • Excelの長い文字列をスペースで区切ってセルに?

    長い文字列が、スペースで区切られています。 このスペースを区切りにしてセルに分割する方法を教えてください。

  • エクセル2000での質問-1つのセルに入っている文字列の中から特定の文字の個数を調べるには

    例えばセルA1に「あい1うえ 1おかき11123くけこ」と入っているとします。 その中から、 (半角スペース)あるいは文字列が何個入っているのかを返す関数と言う物は有るのでしょうか?この例の場合半角スペースなら1、数字の1なら5という要領です。

  • エクセル セル内のスペースで区切られた文字列を下のセルへ貼り付ける

    質問があります。 エクセルのセル内にスペースで区切られた文字列があります。 これをスペースで区切られた文字ごとに下のセルへ移動させたいのですが、 関数または、マクロでできるでしょうか? よろしくおね害します。

  • Excel セル内の文字だけを取り出すには

    Excelの1つのセルに 01234 ABCDEFG のように、「数字5つ(固定)+半角スペース+(任意の数の)文字」 が入力されています。数値は必ず5桁と決まっていますが、 文字列の数はさまざまです。 関数で文字の部分だけ、別のセルに取り出したいのですが、 どの関数を使うとできますか?教えて下さい。 よろしくお願いします。

専門家に質問してみよう