【VBA×ChatGPT】1分でマクロを作り、1秒で処理完了

「VBAマクロを作成」するChatGPTプロンプトや、VBAコードを表示する無料アプリです。

MENU

名前や〇印がはいったシフト表をマトリックス表にする

無料アプリで、すぐにエクセルVBAマクロを作成できます。

例として、アプリで「名前や〇印がはいったシフト表をマトリックス表にする」VBAマクロを作成します。

(ページの末尾に、VBAコード掲載)

処理のイメージ

事例

日にちを行目出しに、シフトを列見出しに、氏名をデータにしたマトリックス表を作ります。

マクロを実行すると、文字列が入ったマトリックス表ができました。

アプリの設定

アプリのトップページ

 ⇒▼表形式の変換
 ⇒リスト形式を

 ⇒縦のリスト形式のデータを、マトリックス表にする(文字表示可)

【ポイント】

■ リスト内の列は、表の左端列から数えてであり、A列から数えてではありません。

■ みだしが日時のときは、チェックをいれてください

■ 数字の加算などができます。

表示されるVBAコード 

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

Sub デモ_127() '縦のリスト形式のデータを、マトリックス表にする(文字表示可)
 Application.ScreenUpdating = False ' 画面描画を停止
Application.DisplayAlerts = False  ' 警告表示を停止

'◆配列のリストに表を入れる
Dim リスト As Variant
Sheets("データ").Select
リスト = Range("a1").CurrentRegion
'◆キーをつくり、キーが辞書に無ければ、キーを辞書に登録(日時は、数値に変換してItemに入れる)
Dim 行辞書 As Object, 列辞書 As Object, 行 As Long, 列 As Long, 行key As Variant, 列key As Variant
Set 行辞書 = CreateObject("Scripting.Dictionary")
Set 列辞書 = CreateObject("Scripting.Dictionary")
For 行 = 2 To UBound(リスト, 1)
    行key = リスト(行, 1)
    If Not 行辞書.Exists(行key) Then
       行辞書.Add 行key, CLng(リスト(行, 1))
    End If
Next
For 列 = 2 To UBound(リスト, 1)
    列key = リスト(列, 2)
    If Not 列辞書.Exists(列key) Then
       列辞書.Add 列key, ""
    End If
Next
Worksheets("データ").Select
'既存データクリア
Range("e1").CurrentRegion.ClearContents
'◆キーを入れた行と列のリストを、セルに転記(日時のときはItemをいれる)
Dim 行リスト As Variant, 列リスト As Variant
行リスト = 行辞書.items
Range("e1").Offset(1, 0).Resize(UBound(行リスト) + 1).Value = WorksheetFunction.Transpose(行リスト)
列リスト = 列辞書.Keys
Range("e1").Offset(0, 1).Resize(, UBound(列リスト) + 1).Value = 列リスト
'◆値を転記
Dim j   As Long
For j = 2 To UBound(リスト, 1)
    行 = WorksheetFunction.Match(CLng(リスト(j, 1)), 行リスト, 0)
    列 = WorksheetFunction.Match(リスト(j, 2), 列リスト, 0)
    Range("e1").Cells(行 + 1, 列 + 1).Value = リスト(j, 3)
Next j

'行見出しの書式を戻す
行リスト = 行辞書.Keys
Range("e1").Offset(1, 0).Resize(UBound(行リスト) + 1).Value = WorksheetFunction.Transpose(行リスト)
Application.DisplayAlerts = True   ' 警告表示を再開
Application.ScreenUpdating = True  ' 画面描画を再開
End Sub   

マクロを使うメリット

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

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

 

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

nocodevba.herokuapp.com