- ベストアンサー
VBAの文字列分割
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
VBAでやらなくても、[区切り位置]機能を使えば済む話ではないでしょうか? 【参考URL】 Be Cool Users 2007 > Excel・エクセル > 入力・編集 > 区切り位置でデータを分割 http://www.becoolusers.com/excel/text-to-columns.html もしVBAを使って行うのであれば、次の様なものになります。 Sub QNo9045688_VBAの文字列分割() Range("A1").TextToColumns Destination:=Range("B1"), DataType:=xlDelimited, _ TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=True, Tab:=False, _ Semicolon:=False, Comma:=False, Space:=True, Other:=False End Sub
その他の回答 (3)
- real beatin(@realbeatin)
- ベストアンサー率82% (174/211)
Sub hoge() Range("A1").TextToColumns _ Destination:=Range("B1"), DataType:=xlDelimited, ConsecutiveDelimiter:=True, _ Tab:=False, Semicolon:=False, Comma:=False, Space:=True, Other:=False End Sub Excelの一般機能ですので、VBAで扱う必要があるのか解りませんが、 [データ]メニュー → [区切り位置] を使った一行マクロです。 [マクロの記録]を採れば、素コードを得られますから、 VBAのヘルプで、range.TextToColumnsメソッドの引数について調べるなどして、 個別の必要に合わせて活用するようにして下さい。
お礼
早速の回答ありがとうございます。 勉強になりました! ありがとうございましたm( _ _ )m
- webuser
- ベストアンサー率33% (372/1121)
VBAでやるより、 一旦その文字列をメモ帳で「.prn」を拡張子にしてセーブし、それを開いた方が早そう。 他のファイル形式でブックを保存する https://support.office.com/ja-jp/article/%E4%BB%96%E3%81%AE%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E5%BD%A2%E5%BC%8F%E3%81%A7%E3%83%96%E3%83%83%E3%82%AF%E3%82%92%E4%BF%9D%E5%AD%98%E3%81%99%E3%82%8B-6a16c862-4a36-48f9-a300-c2ca0065286e VBAでやるなら、For next 使ってループの中で地道にやるとか。
お礼
早速の回答ありがとうございます。 勉強になりました! ありがとうございましたm( _ _ )m
- mt2008
- ベストアンサー率52% (885/1701)
Split関数を使います。 Sub Sample() Dim vString vString = Split(Range("A1").Value) Range(Cells(1, 2), Cells(1, UBound(vString) + 2)) = vString End Sub 「空白の数に制限なくできるもの」ってのが、区切り文字として連続した空白もあるという意味でしたら、最初に2つのスペースを1つのスペースに置換するというのを文字列の長さに変化がなくなるまでやってからsplitします。
お礼
早速の回答ありがとうございます。 勉強になりました! ありがとうございましたm( _ _ )m
お礼
早速の回答ありがとうございます。 区切り位置機能の存在をすっかり忘れておりました。 VBAの構文も完璧でした! ありがとうございましたm( _ _ )m