エクセルVBAマクロを自動作成する無料アプリです。
例として「縦1列のデータを、複数列や複数行に分ける」VBAマクロを作成します。
事例 縦1列のデータを2行ごとに分けて、複数行にする
できました(^^)/
なお、異なる間隔はこちら↓
アプリの設定
アプリへのリンク ⇒縦1列のデータを、等間隔で、複数列や複数行に分ける
【ポイント】
※「行列を入れ替えて、横方向に貼り付ける」のチェックを入れると、データが列方向に並びます。
表示されるVBAコード
アプリで作成されたコードを、VBE画面に貼り付ければ、マクロの完成です。
VBAコードを見る
Sub デモ() '縦1列のデータを、等間隔で、複数列や複数行に分ける
Application.ScreenUpdating = False ' 画面描画を停止
Application.DisplayAlerts = False ' 警告表示を停止
Dim セル範囲 As String, セル As Range, 元表行数 As Long, 元表列数 As Long, 配列 As Variant, 配列1次元 As Variant
Sheets("Sheet1").Select
セル範囲 = Range(Range("a1"), Cells(Rows.Count, Range("a1").Column).End(xlUp)).Address(False, False)
'セルの結合解除
Range(セル範囲).Select
Selection.UnMerge
'◆元表の行数を取得
元表行数 = Selection.Rows.Count
'◆表を配列に格納
配列 = Range(セル範囲).Value
'◆配列を、1次元配列へ格納
配列1次元 = WorksheetFunction.Transpose(配列)
'◆配列を、配列2次元に格納
Dim 配列2次元() As Variant, 行 As Long, 列 As Long, 値 As Long
ReDim 配列2次元(元表行数 / 2 - 1, 2 - 1)
値 = 1
For 行 = 0 To 元表行数 / 2 - 1
For 列 = 0 To 2 - 1
配列2次元(行, 列) = 配列1次元(値)
値 = 値 + 1
Next 列
Next 行
'◆配列のメモリーを開放
Erase 配列
Erase 配列1次元
'◆配列2次元を、表示
Sheets("sheet1").Range("c1").Resize(元表行数 / 2, 2) = 配列2次元
'◆表に罫線をいれる
Sheets("sheet1").Range("c1").CurrentRegion.Borders.LineStyle = True
Application.DisplayAlerts = True ' 警告表示を再開
Application.ScreenUpdating = True ' 画面描画を再開
End Sub
ChatGPTで修正
あなたが自動化したい内容と事例が少し異なる場合は、無料で使えるマイクロソフトの「BingAIチャット」でコードを修正します。とても簡単です!