VBAマクロを自動作成する無料アプリ

VBAコードの知識不要😊ChatGPTで機能を追加

MENU

【ノーコード】1データが複数行(2行)の表を、1データ1行のリストにする

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

例として「1データが複数行(2行)の表を、1データ1行のリストにする」VBAマクロを作成します。

事例 1明細1行のデータベース形式する

マクロを実行すると、1データ1行になりました。

 

アプリの設定

アプリのトップページ

 ⇒▼表形式の変換

 ⇒リスト形式へ

 ⇒【ツール】1データが複数行(2行)の表を、1データ1行のリストにする

 

【ポイント】

■ 結合されたセルは、自動で解除されます。

■ 計算式は、値で上書きされます。

■ 「列の見出し」が1行だけのデータも対応できます。

表示されるVBAコード 

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

 

VBAコードを見る

Sub デモ() '1データが複数行(2行)の表を、1データ1行のリストにする
 
Application.ScreenUpdating = False ' 画面描画を停止
Application.DisplayAlerts = False  ' 警告表示を停止
Dim セル範囲 As String, セル As Range
Sheets("Sheet1").Select
'表の最終行を決定
Dim 最終行 As Long
最終行 = Cells(Rows.Count, Range("A1").Column).End(xlUp).Row
セル範囲 = "a1" & ":" & Cells(最終行, Range("b1").Column).Address(False, False)
  
Range(セル範囲).Select
'セルの結合解除
Selection.UnMerge
'◆元表の行数と列数を取得
Dim 元表行数 As Long, 元表列数 As Long
元表行数 = Selection.Rows.Count
元表列数 = Selection.columns.Count
'◆表を配列に格納
Dim 配列 As Variant, 行数 As Long, データ1行 As Variant, 配列1次元 As Variant, 出力先 As Range
配列 = Range(セル範囲).Value
'◆配列を1行づつ、1次元配列へ格納
For 行数 = 1 To 元表行数
    データ1行 = WorksheetFunction.Index(配列, 行数)
    If 行数 = 1 Then
         配列1次元 = Split(Join(データ1行, "|"), "|")
    Else
         配列1次元 = Split(Join(配列1次元, "|") & "|" & Join(データ1行, "|"), "|")
    End If
Next 行数
'◆配列のメモリーを開放
Erase 配列
Erase データ1行
'◆1次元配列を、配列2次元に格納
Dim 行 As Long, 列 As Long, 値 As Long
ReDim 配列2次元(元表行数 / 2 - 1, 元表列数 * 2 - 1)
For 行 = 0 To 元表行数 / 2 - 1
    For 列 = 0 To 元表列数 * 2 - 1
        配列2次元(行, 列) = 配列1次元(値)
        値 = 値 + 1
    Next 列
Next 行
'◆配列1次元のメモリーを開放
Erase 配列1次元
Set 出力先 = Sheets("sheet1").Range("d1").Resize(元表行数 / 2, 元表列数 * 2)
'◆配列2次元を、表示
出力先 = 配列2次元
On Error Resume Next
出力先.Borders.LineStyle = True '表に罫線をいれる
出力先.SpecialCells(xlCellTypeConstants, xlNumbers).Style = "Comma [0]" '表の数字にカンマをいれる
出力先.SpecialCells(xlCellTypeConstants, xlNumbers).HorizontalAlignment = xlRight '表の数字を右揃えにする
Application.DisplayAlerts = True   ' 警告表示を再開
Application.ScreenUpdating = True  ' 画面描画を再開
End Sub   

 

類似する処理です。

 

ChatGPTで修正

あなたが自動化したい内容と事例が少し異なる場合は、無料で使えるマイクロソフトの「BingAIチャット」でコードを修正します。とても簡単です!

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