エクセルVBAマクロを自動作成する無料アプリです。
例として「項目ごとの合計を、表の横に表示する」VBAマクロを作成します。
事例 伝票番号ごとの合計額を表の横に表示する
A列の伝票番号ごとに、E列の合計額を、F列に表示します。
マクロを実行すると、合計が表示されます。
アプリの設定
アプリへのリンク ⇒項目ごとの合計を、表の横に表示する
【ポイント】
■ 合計する列と、表示する列は、数字(C列は3)で指定します。
■ 表示する場所は、項目の下端やすべても選択できます。
下線の上
すべて
表示されるVBAコード
アプリで作成されたコードを、VBE画面に貼り付ければ、マクロの完成です。
VBAコードを見る
Sub デモ_3() '項目ごとの合計を、表の横に表示する
Application.ScreenUpdating = False ' 画面描画を停止
Application.DisplayAlerts = False ' 警告表示を停止
Dim セル範囲 As String, セル As Range, 右下セル As String
Sheets("sheet1").Select
セル範囲 = "a2:a13"
Range(セル範囲).Select
Call デモ_3_メイン処理(セル範囲)
Application.DisplayAlerts = True ' 警告表示を再開
Application.ScreenUpdating = True ' 画面描画を再開
End Sub
Sub デモ_3_メイン処理(セル範囲 As String)
Dim 対象行 As Long, 上行 As Long, 下行 As Long, 項目列 As Long, 合計 As Variant
上行 = Selection(1).Row
下行 = Selection(Selection.Count).Row
項目列 = Selection(1).Column
合計 = Cells(下行, 5).Value
For 対象行 = 下行 To 上行 Step -1
If Cells(対象行, 項目列).Value <> Cells(対象行 - 1, 項目列).Value Then
Cells(対象行, 6).Value = 合計
合計 = Cells(対象行 - 1, 5).Value
Else
合計 = 合計 + Cells(対象行 - 1, 5)
End If
Next 対象行
Dim セル As Range
For Each セル In Range(Cells(上行, 6), Cells(下行, 6)).Cells
If セル.Value = "" Then
セル.Value = セル.Offset(-1, 0).Value
End If
Next セル
Application.CutCopyMode = False
End Sub
ChatGPTで修正
あなたが自動化したい内容と事例が少し異なる場合は、無料で使えるマイクロソフトの「BingAIチャット」でコードを修正します。とても簡単です!