【ノーコード】VBAコードを作成する無料アプリ

AIで自分の価値を高める方法とは🙄

MENU

【ノーコードVBA】カンマ区切りデータを、表を崩さず縦に分割する

エクセルVBAマクロを自動作成する無料アプリです。

例として「カンマ区切りデータを、表を崩さず縦に分割する」VBAマクロを作成します。

・カンマ(,)区切りだけでなく、半角空白( )、改行文字(Chr(10))なども対応できます。

事例 カンマ区切りデータを縦に並べ、見出しも追記

f:id:The-Alchemist:20220118102819p:plain

アプリの設定

トップページ 

 ⇒▼カンマ区切りデータ、CSVデータ 

 ⇒【ツール】表を崩さず、セルのカンマ区切りデータを、縦方向に分割

【ポイント】

 列1は、見出しとなる行を指定します。

■ 列2は、セル内に、複数データが入った行を指定します。

■ 区切り文字は、半角や全角の空白も可能。いずれもは不要。

 左列と右列の両方の分割もできます。

 



表示されるVBAコード 

アプリで作成されたコードを、VBE画面に貼り付ければ、マクロの完成です。

 

VBAコードを見る

Sub デモ() '表を維持したまま、セルのカンマ区切りデータを、縦方向に分割
 
Application.ScreenUpdating = False ' 画面描画を停止
Application.DisplayAlerts = False  ' 警告表示を停止
Dim 第1列データ As String, 第2列データ As String
Dim 第1列配列() As String, 第2列配列() As String
Dim 行 As Long, 配列要素 As Long
Sheets("Sheet1").Select
'◆初期値設定
行 = 2
Do
    第1列データ = Cells(行, 1).Value
    第2列データ = Cells(行, 2).Value
    '◆終了条件
    If 第1列データ = "" And 第2列データ = "" Then Exit Do
    '◆データを配列に格納
    第1列配列() = Split(第1列データ, "、")
    第2列配列() = Split(第2列データ, "、")
    '◆第2列データが空白
    If UBound(第2列配列) = -1 Then
        Cells(行, 1) = Join(第1列配列, "、")
        Cells(行, 2) = ""
        行 = 行 + 1
        GoTo 次処理1
    End If
    For 配列要素 = LBound(第2列配列) To UBound(第2列配列)
        '◆第1列データが空白
        If UBound(第1列配列) = -1 Then
            Cells(行, 1) = ""
            Cells(行, 2) = 第2列配列(配列要素)
        Else
            '◆空白なし
            Cells(行, 1) = Join(第1列配列, "、")
            Cells(行, 2) = 第2列配列(配列要素)
        End If
        If 配列要素 < UBound(第2列配列) Then
             Rows(行 + 1).Insert
        End If
        行 = 行 + 1
    Next 配列要素
    
  次処理1:
Loop
Application.ScreenUpdating = True ' 画面描画を再開
Application.DisplayAlerts = True  ' 警告表示を再開
End Sub

 

 

 

【スクリーンショット5選】エクセルVBAで、カンマ区切り