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

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

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

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答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/7941)
回答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
質問者

お礼

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