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

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

MENU

【ノーコード】表の見出しを基準に、縦(横)に並んだ表を、横(縦)に並べる

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

例として「表の見出しを基準に、縦に並んだ表を、横に並べる」VBAマクロを作成します。

事例 に並んだ表を、横一列に並べる

できました(^^)/

アプリの設定

アプリのトップページ

 ⇒▼表形式の変換

 ⇒表

 ⇒ 【ツール】表の見出しを基準に、縦(横)に並んだ表を、横(縦)に並べる

【ポイント】

処理する条件」は、文字列の「商品」と等しい、を選んでいます。

この条件のあるセルを基準に、表を切り分けます。

 

表示されるVBAコード 

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

 

VBAコードを見る

 Sub デモ_10() '表の見出しを使い、縦(横)に並んだ表を、横(縦)に並べる
Application.ScreenUpdating = False ' 画面描画を停止
Application.DisplayAlerts = False  ' 警告表示を停止

Dim 辞書 As Object, アドレス As Variant
Dim 右下セル As String, セル As Range, 行 As Long, 列 As Long, j As Long
Set 辞書 = CreateObject("Scripting.Dictionary")
Sheets("Sheet1").Select
'◆最終セルを取得する          
With Range("a1").CurrentRegion
右下セル = Cells(.Row+ .Rows.Count-1, .Column+ .Columns.Count-1).Address(False, False)
End With
'◆辞書のkeyに、対象セルのアドレスを入れる
For 行 = Range("a1").Row To Range(右下セル).Row
Set セル = Cells(行, Range("a1").Column)
        If セル.Value Like "*商品*" Then
            辞書.Add セル.Address(False, False), 1
    End If
Next 行
'◆辞書のkeyの最後に、最終行のアドレスを入れる
辞書.Add Cells(Range(右下セル).Row, Range("a1").Column).Offset(1, 0).Address(False, False), 1
'◆配列のアドレスに、辞書のキーをいれる
アドレス = 辞書.keys
'◆アドレス間の値を、コピーする
For j = LBound(アドレス) To UBound(アドレス) - 1
    Sheets("Sheet1").Select
    Range(Range(アドレス(j)), Range(アドレス(j + 1)).Offset(-1, Range(右下セル).Column - Range("a1").Column)).Copy
    Sheets("Sheet2").Select
    If Cells(Range("a1").Row, Columns.Count).End(xlToLeft) = Range("a1") Then
        Range("a1").Select
    Else
        Cells(Range("a1").Row, Columns.Count).End(xlToLeft).Offset(0, 1).Select
    End If
    Selection.PasteSpecial Transpose:=False
Next j
Application.CutCopyMode = False
Application.DisplayAlerts = True   ' 警告表示を再開
Application.ScreenUpdating = True  ' 画面描画を再開
End Sub   

 

ChatGPTで修正

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

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