MENU

セル内の文字列を、複数のセルに分割するマクロ

VBAマクロを、簡単に作成してみませんか?

例として、アプリで「セル内の文字列を分割する」するVBAマクロを作成します。

処理のイメージ

事例

CSVデータ等(カンマや空白で区切り、ひとつのセルに複数の文字が入っている)を、各文字列ごとにセルに分割し横に並べるマクロを、アプリで作成します。

 

カンマ区切りのデータが、A列にあります。

マクロを実行すると、指定したセルに、分割した文字列が入ります。

アプリの設定

アプリの設定です。



※ 区切り文字が空白のときは、””で囲まずに、全角もしくは半角の空白をアプリに入力してください。

 

表示されるVBAコード 

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

Sub デモ_1() 'セル内の文字列を区切り、複数セルに転記
Application.ScreenUpdating = False ' 画面描画を停止
Application.DisplayAlerts = False  ' 警告表示を停止
Dim セル範囲 As String, セル As Range, 右下セル As String
Sheets("sheet1").Select
'◆最終行を取得し、セル範囲を決める
Range("a1:a1").CurrentRegion.Select
右下セル = Cells(Selection.Row + Selection.Rows.Count - 1, Range("a1").Column).Address(False, False)
セル範囲 = "a1" & ":" & 右下セル

 
Range(セル範囲).Select
Call デモ_2_メイン処理(セル範囲, 右下セル)
Application.DisplayAlerts = True   ' 警告表示を再開
Application.ScreenUpdating = True  ' 画面描画を再開
End Sub
                           
Sub デモ_2_メイン処理(セル範囲 As String, 右下セル As String)
Dim 行 As Long, 列 As Long, 要素 As Variant
For 行 = Range("a1").Row To Range(右下セル).Row
    要素 = Split(Cells(行, Range("a1").Column), ",")
    For 列 = 0 To UBound(要素)
        Cells(行, Range("d1").Column + 列) = 要素(列)
    Next 列
Next 行
End Sub

分割する文字列が3個以上でも可能

マクロを使うメリット

手作業で数分かかる作業が、1秒で終わります。

ぜひ、アプリをご利用ください。

 

アプリはこちらから↓↓↓↓