Excel VBA 質問スレッド №1241 (未解決)

タブ区切りを行方向に分割したい

投稿者 : くるみ     投稿日時 : 2023/01/25(Wed) 16:18:54     OS : Windows 10     EXCEL : Office 365
VBA初心者です。
色々調べてみたのですがうまくいかない為ご教授ください。

1行目   A   B   C   D       E         A   B   C   D       E 
2行目             111                    111      111
3行目             156                    156      156           
4行目             123,124                 123      123,124
5行目                                  124            
6行目             132,134,145       →       132      132,134,145
7行目                                  134
8行目                                  145
9行目             111,894                 111      111,894
10行目                                  894


上記のようにD列にカンマ区切りで数字が入力されています。
(カンマ区切りの数だけ下に空白セルがあります。)
このD列のデータをB列に縦方向に並べたいです。
(上記左側がVBA実行前、VBA実行後右側のような形にしたいです。)

ぜひアドバイス頂けたら幸いです。よろしくお願い致します。

スポンサーリンク
[返信 1] Re : タブ区切りを行方向に分割したい
投稿者 : さんこう     投稿日時 : 2023/01/25(Wed) 16:32:19
参考になれば。


Sub Test()
    Dim b As Long
    Dim v As Variant
    
    b = 6
    v = Split(Cells(6, "D"), ",")
    For i = 0 To UBound(v)
        Cells(b, "B") = v(i)
        b = b + 1
    Next

End Sub

[返信 2] Re : タブ区切りを行方向に分割したい
投稿者 : くるみ     投稿日時 : 2023/01/25(Wed) 17:11:10
さんこう様

ご回答ありがとうございます!
実行してみたところ、6行目のみしかできなかったのですが、
D列2行目~データがある最終行まで行うようにすることは可能でしょうか?
(説明不足で申し訳ございません)

[返信 3] Re : タブ区切りを行方向に分割したい
投稿者 : さんこう     投稿日時 : 2023/01/25(Wed) 17:50:49
>実行してみたところ、6行目のみしかできなかった

そのように作ったので、予定通りです。
Split(Cells(6, "D")
の「6」を、2行目~データがある最終行までの
空欄でない行で繰り返せばいいです。

[返信 4] Re : タブ区切りを行方向に分割したい
投稿者 : tek     投稿日時 : 2023/01/26(Thu) 19:54:22
失礼します。
365ならTextJoin関数が使えます。
一旦連結して、分割代入すれば良いです。

Sub test()
    Dim ss() As String
    Dim s As String
    With ActiveSheet
        s = Application.WorksheetFunction.TextJoin(",", True, .Range("D2", .Cells(.Rows.Count, "D").End(xlUp)))
        ss = Split(s, ",")
        .Range("B2").Resize(UBound(ss) + 1).Value = Application.Transpose(ss)
    End With
End Sub

当掲示板について
  • Excel VBA に関する掲示板です。Excel VBA に関する質問や疑問、それに対する解決方法など気軽に投稿してください。
  • 記事内ではHTMLのタグは使用できません。
  • 記事は一度投稿すると修正できません。内容を訂正したい場合は返信で対応してください。
  • Sub〜End Sub、Function〜End Function は自動的にプログラムコードとみなし、枠で囲って見やすくします。
  • Excel VBA とは関係ないことや、他人が不快に思うようなことなど、管理人が適当でないと判断した記事は削除する場合があります。
スポンサーリンク
返信入力フォーム
お 名 前  :
内  容   :

ステータス  :

認証コード  : キャプチャ画像 




( 処理日時 : 2026-04-05 09:29:25 )
タイトルとURLをコピーしました