エクセルVBAマクロを自動作成する無料アプリです。
例として、「項目ごとに値を集計し、合計表を表示する」VBAマクロを作成します。
(ページの末尾に、VBAコード掲載)
事例 A列の商品ごとにC列の数量を、H列に集計します。
できました!😁
アプリの設定
アプリのトップページ
⇒▼集計・合計
⇒項目ごとに値を集計し、合計表を表示する
表示されるVBAコード
アプリで作成されたコードを、VBE画面に貼り付ければ、マクロの完成です。
VBAコードを見る
Sub デモ() '項目ごとに値を集計し、合計表を表示する
Application.ScreenUpdating = False ' 画面描画を停止
Application.DisplayAlerts = False ' 警告表示を停止
'◆辞書のkeyに項目名、itemに集計数をいれる
Dim 辞書 As Object, 行 As Long, セル As Range
Set 辞書 = CreateObject("Scripting.Dictionary")
Sheets("Sheet1").Select
For 行 = Range("a1").Offset(1, 0).Row To Cells(Rows.Count, Range("a1").Column).End(xlUp).Row
Set セル = Cells(行, Range("a1").Column)
If 辞書.Exists(セル.Value) Then
辞書(セル.Value) = 辞書(セル.Value) + Cells(行, Range("c1").Column).Value
Else
辞書.Add セル.Value, Cells(行, Range("c1").Column).Value
End If
Next 行
'◆集計結果を配列に入れ、シートに書き出し
Dim 配列 As Variant, キー As Variant, 配列行 As Long
ReDim 配列(辞書.Count - 1, 1)
配列行 = 0
For Each キー In 辞書
配列(配列行, 0) = キー
配列(配列行, 1) = 辞書.Item(キー)
配列行 = 配列行 + 1
Next
Sheets("Sheet1").Range("g1").CurrentRegion.Clear
Sheets("Sheet1").Range("a1").Copy Destination:=Sheets("Sheet1").Range("g1")
Sheets("Sheet1").Range("c1").Copy Destination:=Sheets("Sheet1").Range("g1").Offset(0, 1)
Sheets("Sheet1").Range("g1").Offset(1, 0).Resize(辞書.Count, 2) = 配列
Sheets("Sheet1").Range("g1").CurrentRegion.Borders.LineStyle = True
Application.DisplayAlerts = True ' 警告表示を再開
Application.ScreenUpdating = True ' 画面描画を再開
End Sub
ChatGPTで修正
あなたが自動化したい内容と事例が少し異なる場合は、無料で使えるマイクロソフトの「BingAIチャット」でコードを修正します。とても簡単です!