【初心者向け】シートデータをコード別に自動集計するマクロの作り方

 

毎回、Excelの同じ作業に時間を取られていませんか?

たとえば「コードごとにデータを分けてシートごとに集計を作成する」ような地味だけど面倒な作業…。

でも実は、それ、たった1クリックで自動化できるって知っていましたか?

この記事では、初心者の方でも安心して使える「コードごとにシートを分けて集計するExcelマクロ」の使い方を、画像・手順付きでわかりやすく解説します。

ぜひご自身の作業に合わせて使ってみてください。

 

 

初心者向けマクロの作り方|コードごとの自動集計シート作成はどんなときに便利?

Excelシートに同じ表形式のデータが大量にあるとき、「コードごとに別のシートに分けて、集計表を作成して保存したい…」ということはありませんか?

 

たとえば

・データのコードごとに日別集計シートを自動で作成する
 ・担当者コード、商品コード、得意先コード・・・ごとにシートを分けた日別集計

そんな時に便利なのが、この「コードごとに自動でシートを分けて集計するマクロ」です。

 

初心者向けマクロの作り方|コードごとの自動集計シート作成できること

1枚のシートにまとめられたデータから、指定したコード列、日付列、金額列をもとに、コードごと日付、金額で集計し、コードごとにシートを分けて転記。

 

手作業不要!「マクロ実行」だけですぐに完成します。

 

初心者向けマクロの作り方|コードごとの自動集計シート作成の使い方はたったの3ステップ

 

1. 元データをExcelに準備する。

2. マクロを起動(フォームから対象のExcelとコード列を指定)

3. 各コードごとのシートが自動で作成されます。

 

もう、手作業でフィルタしてコピー&ペーストした後、集計する必要はありません。

 

初心者向けマクロの作り方|コードごとの自動集計シート作成|押さえるべき3つのポイント

 

①モジュール構成を覚えよう

「ThisWorkbook」→ 起動時にフォーム表示

「UserForm」→ フォームの見た目と操作

「標準モジュール」→ 実際の分割処理

 

②対象Excelフォーマット

コード列を統一しておく(たとえば、担当者コードはA列に統一する、日付列はB列、金額列はC列など)

 

③トラブル対策

マクロを実行する前に、対象のExcelファイルをバックアップする(別フォルダにコピーをとる)

 

初心者向けマクロの作り方|コードごとの自動集計シート作成|よく変更が行われる箇所

変更箇所(追加) 内容 たとえば、このように変更
newWS.Name = codeKey シート名を「コード+日付」などにする newWS.Name = codeKey & "_" & Format(Date, "yyyymmdd")
newWS.Range("C1") = "追加列名 出力する列を追加する ループ内で値を入れるコードを追加

 

 

初心者向けマクロの作り方|コードごとの自動集計シート作成【検証済】コード

シートごとにコード別日別集計する【検証済】マクロコード一式(フォーム+標準モジュール+ThisWorkbook)を紹介します。

 

ThisWorkbook モジュール

xlsmファイルを開いたときに自動でフォームを表示するコードです。

 

  1. Option Explicit
  2. Private Sub Workbook_Open()
  3.      UserForm1.Show vbModeless
  4. End Sub
  1. Option Explicit
  2. Private Sub Workbook_Open()
  3.      UserForm1.Show vbModeless
  4. End Sub

 

 

フォーム

フォームのデザイン

オブジェクト名 種類 キャプション
変更しない Label 対象Excelファイル
txtFile TextBox 空白
btnBrowse CommandButton ファイル選択
変更しない Label コード列(例:A)
txtCodeCol TextBox 空白
変更しない Label 日付列(例:A)
txtDateCol TextBox 空白
変更しない Label 金額列(例:A)
txtAmountCol TextBox 空白
btnAggregate CommandButton 集計
btnClose CommandButton 終了

 

フォームのコード(UserForm1)

 

  1. Option Explicit
  2. Private Sub UserForm_Initialize()
  3.     ' Excelウィンドウを最小化し、フォームを前面に出す
  4.     Application.WindowState = xlMinimized
  5.     Me.StartUpPosition = 1 ' 画面中央
  6.     Me.Show vbModeless
  7. End Sub
  8. Private Sub btnBrowse_Click()
  9.     Dim fd As FileDialog
  10.     Set fd = Application.FileDialog(msoFileDialogFilePicker)
  11.     With fd
  12.         .Title = "Excelファイルを選択してください"
  13.         .Filters.Clear
  14.         .Filters.Add "Excelファイル", "*.xlsx; *.xlsm; *.xls"
  15.         If .Show = -1 Then
  16.             txtFile.Text = .SelectedItems(1)
  17.         End If
  18.     End With
  19. End Sub
  20. Private Sub btnAggregate_Click()
  21.     If txtFile.Text = "" Or txtCodeCol.Text = "" Or txtDateCol.Text = "" Or txtAmountCol.Text = "" Then
  22.         MsgBox "ファイルと各列をすべて指定してください", vbExclamation
  23.         Exit Sub
  24.     End If
  25.     If txtCodeCol.Text = txtDateCol.Text Then
  26.         MsgBox "コード列と日付列に同じ値は指定できません", vbExclamation
  27.         Exit Sub
  28.     End If
  29.     If txtCodeCol.Text = txtAmountCol.Text Then
  30.         MsgBox "コード列と金額列に同じ値は指定できません", vbExclamation
  31.         Exit Sub
  32.     End If
  33.     If txtDateCol.Text = txtAmountCol.Text Then
  34.         MsgBox "日付列と金額列に同じ値は指定できません", vbExclamation
  35.         Exit Sub
  36.     End If
  37.     Application.ScreenUpdating = False
  38.     
  39.     Dim colLetter As String
  40.     colLetter = UCase(txtCodeCol.Text) ' 大文字に統一
  41.     ' 列記号が正しいかと、2行目のセルに値があるか確認
  42.     Dim wb As Workbook
  43.     Set wb = Workbooks.Open(txtFile.Text)
  44.     Dim srcWs As Worksheet
  45.     Set srcWs = wb.Sheets(1) ' 最初のシートを対象に
  46.     Dim checkValue As Variant
  47.     On Error Resume Next
  48.     checkValue = srcWs.Range(colLetter & "2").Value
  49.     On Error GoTo 0
  50.     ' コード列記号の妥当性チェック
  51.     If Not IsValidColumnLetter(colLetter) Then
  52.         MsgBox "コード列記号が無効です。" & vbCrLf & "A ? XFD の範囲で入力してください。", vbExclamation
  53.         Application.ScreenUpdating = True ' MsgBox後に復元
  54.         wb.Close SaveChanges:=False
  55.         Exit Sub
  56.     End If
  57.     If IsEmpty(checkValue) Or checkValue = "" Then
  58.         MsgBox "範囲外のコード列指定になっています。" & vbCrLf & _
  59.                "指定したコード列の2行目に値がありません。", vbExclamation
  60.         Application.ScreenUpdating = True ' MsgBox後に復元
  61.         wb.Close SaveChanges:=False
  62.         Exit Sub
  63.     End If
  64.     colLetter = UCase(txtDateCol.Text) ' 大文字に統一
  65.     ' 日付列記号の妥当性チェック
  66.     If Not IsValidColumnLetter(colLetter) Then
  67.         MsgBox "日付列記号が無効です。" & vbCrLf & "A ? XFD の範囲で入力してください。", vbExclamation
  68.         Application.ScreenUpdating = True ' MsgBox後に復元
  69.         wb.Close SaveChanges:=False
  70.         Exit Sub
  71.     End If
  72.     colLetter = UCase(txtAmountCol.Text) ' 大文字に統一
  73.     ' 金額列記号の妥当性チェック
  74.     If Not IsValidColumnLetter(colLetter) Then
  75.         MsgBox "金額列記号が無効です。" & vbCrLf & "A ? XFD の範囲で入力してください。", vbExclamation
  76.         Application.ScreenUpdating = True ' MsgBox後に復元
  77.         wb.Close SaveChanges:=False
  78.         Exit Sub
  79.     End If
  80.     Application.ScreenUpdating = True
  81.     ' 実行
  82.     Call 集計処理(txtFile.Text, UCase(txtCodeCol.Text), UCase(txtDateCol.Text), UCase(txtAmountCol.Text))
  83. End Sub
  84. Private Sub btnClose_Click()
  85.     Application.WindowState = xlNormal
  86.     ThisWorkbook.Save
  87.     Application.Quit
  88. End Sub
  89. Function IsValidColumnLetter(colLetter As String) As Boolean
  90.     On Error GoTo ErrHandler
  91.     Dim rng As Range
  92.     Set rng = Worksheets(1).Range(colLetter & "1")
  93.     IsValidColumnLetter = True
  94.     Exit Function
  95. ErrHandler:
  96.     IsValidColumnLetter = False
  97. End Function

 

標準モジュール(Module1)

 

  1. Option Explicit
  2. Public Sub 集計処理(filePath As String, codeCol As String, dateCol As String, amountCol As String)
  3.     Application.ScreenUpdating = False
  4.     Application.DisplayAlerts = False
  5.     
  6.     Dim wb As Workbook
  7.     Dim ws As Worksheet
  8.     Dim lastRow As Long
  9.     Dim codeDict As Object: Set codeDict = CreateObject("Scripting.Dictionary")
  10.     Dim codeColNum As Long
  11.     Dim dateColNum As Long
  12.     Dim amountColNum As Long
  13.     
  14.     Set wb = Workbooks.Open(filePath)
  15.     Set ws = wb.Sheets(1)
  16.     ' 列番号取得
  17.     codeColNum = Range(codeCol & "1").Column
  18.     dateColNum = Range(dateCol & "1").Column
  19.     amountColNum = Range(amountCol & "1").Column
  20.     lastRow = ws.Cells(ws.Rows.Count, codeColNum).End(xlUp).row
  21.     ' ソート
  22.     ws.Sort.SortFields.Clear
  23.     ws.Sort.SortFields.Add Key:=ws.Cells(2, codeColNum), Order:=xlAscending
  24.     ws.Sort.SortFields.Add Key:=ws.Cells(2, dateColNum), Order:=xlAscending
  25.     With ws.Sort
  26.         .SetRange ws.Range("A1", ws.Cells(lastRow, ws.Cells(1, Columns.Count).End(xlToLeft).Column))
  27.         .header = xlYes
  28.         .Apply
  29.     End With
  30.     ' コードごとにデータ格納
  31.     Dim i As Long
  32.     For i = 2 To lastRow
  33.         Dim code As String, dt As String, amt As Double
  34.         code = Trim(ws.Cells(i, codeColNum).Value)
  35.         dt = Format(ws.Cells(i, dateColNum).Value, "yyyy/mm/dd")
  36.         amt = ws.Cells(i, amountColNum).Value
  37.         
  38.         If code <> "" And dt <> "" And IsNumeric(amt) Then
  39.             If Not codeDict.exists(code) Then
  40.                 codeDict.Add code, CreateObject("Scripting.Dictionary")
  41.             End If
  42.             
  43.             With codeDict(code)
  44.                 If .exists(dt) Then
  45.                     .Item(dt) = .Item(dt) + amt
  46.                 Else
  47.                     .Add dt, amt
  48.                 End If
  49.             End With
  50.         End If
  51.     Next i
  52.     ' シート作成
  53.     Dim codeKey As Variant
  54.     For Each codeKey In codeDict.Keys
  55.         If シート存在チェック(wb, codeKey) Then
  56.             MsgBox "コード [" & codeKey & "] のシートはすでに存在します。処理を中止します。", vbInformation
  57.             wb.Close SaveChanges:=False
  58.             GoTo EndProc
  59.         End If
  60.         
  61.         Dim newWS As Worksheet
  62.         Set newWS = wb.Sheets.Add(After:=wb.Sheets(wb.Sheets.Count))
  63.         newWS.Name = codeKey
  64.         
  65.         ' ヘッダー
  66.         newWS.Range("A1") = "日付"
  67.         newWS.Range("B1") = "合計金額"
  68.         
  69.         ' データ出力
  70.         Dim row As Long: row = 2
  71.         Dim dtKey As Variant
  72.         For Each dtKey In codeDict(codeKey).Keys
  73.             newWS.Cells(row, 1).Value = dtKey
  74.             newWS.Cells(row, 2).Value = codeDict(codeKey)(dtKey)
  75.             row = row + 1
  76.         Next dtKey
  77.         
  78.         newWS.Cells.EntireColumn.AutoFit
  79.     Next codeKey
  80.     wb.Save
  81.     wb.Close SaveChanges:=True
  82.     MsgBox "集計完了しました", vbInformation
  83. EndProc:
  84.     Application.ScreenUpdating = True
  85.     Application.DisplayAlerts = True
  86. End Sub
  87. Private Function シート存在チェック(wb As Workbook, codeKey As Variant) As Boolean
  88.     Dim ws As Worksheet
  89.     For Each ws In wb.Sheets
  90.         If ws.Name = codeKey Then
  91.             シート存在チェック = True
  92.             Exit Function
  93.         End If
  94.     Next
  95.     シート存在チェック = False
  96. End Function

 

初心者向けマクロの作り方|コードごとの自動集計シート作成【検証済】コードの使い方

以下手順で、シートごとにコード別日別集計するマクロは完成します。

フォームはコードがないので、ご自身で作成することになりますが、その他のコードは、【検証済】コードをコピペすればマクロができます。※フォーム作成方法も、下記で詳しく説明しますので、ご安心ください。

 

Excel起動からユーザーフォーム作成の操作

新規 空白のブックをクリックします

 

ALT+F11で、下記開発画面になります。

 

ユーザーフォームのデザイン画面になります。

 

ツールボックスでユーザーフォームを作成します。

 

下記は、ツールボックスをドラッグで移動してサイズを変更した画面

 

下記は、ツールボックスをドラッグで移動してサイズを変更した画面

 

ツールボックスのコントロールがたくさんありますが、今回使うのは、下記の3種類(ラベル、テキストボックス、コマンドボタン)です。

 

ユーザーフォームを作成:ラベルを作る(表題)①

対象Excelファイル

ユーザーフォームを作成:ラベルを作る(表題)②

 

ユーザーフォーム作成:テキストボックスを作る(画面がら文字入力する場所)

ファイル選択

ユーザーフォーム作成:ボタンを作る(何かの動作をさせる際のボタン)①

 

ユーザーフォーム作成:ボタンを作る(何かの動作をさせる際のボタン)②

コード列(例:A)から終了まで

ユーザーフォーム作成

 

ユーザーフォーム作成でよくある操作
初心者が、やばい!間違えた。どうしようとやめちゃう操作

 

こうなったら、

 

もう一度、UserForm1画面を表示する前に・・・

 

ユーザーフォームのデザイン画面にする

 

Cのプロパティウィンドウのオブジェクト名を変更

txtFile

テキストボックスの名称(オブジェクト)を変更

btnBrowse

コマンドボタンの名称(オブジェクト)を変更

txtCodeCol

テキストボックスの名称(オブジェクト)を変更

txtDateCol

テキストボックスの名称(オブジェクト)を変更

txtAmountCol

テキストボックスの名称(オブジェクト)を変更

btnAggregate

コマンドボタンの名称(オブジェクト)を変更

btnClose

コマンドボタンの名称(オブジェクト)を変更

 

【検証済】コードをコピペ

ここから、【検証済】コードをコピペしていきます

 

【検証済】コードをコピペ:Thisworkbok①

下記、ThisWorkbookモジュールをコピーします

  1. Option Explicit
  2. Private Sub Workbook_Open()
  3.      UserForm1.Show vbModeless
  4. End Sub

【検証済】コードをコピペ:Thisworkbok②

 

【検証済】コードをコピペ:UserForm1①

【検証済】コードをコピペ:UserForm1②

下記、フォームのコードをコピーします

 

  1. Option Explicit
  2. Private Sub UserForm_Initialize()
  3.     ' Excelウィンドウを最小化し、フォームを前面に出す
  4.     Application.WindowState = xlMinimized
  5.     Me.StartUpPosition = 1 ' 画面中央
  6.     Me.Show vbModeless
  7. End Sub
  8. Private Sub btnBrowse_Click()
  9.     Dim fd As FileDialog
  10.     Set fd = Application.FileDialog(msoFileDialogFilePicker)
  11.     With fd
  12.         .Title = "Excelファイルを選択してください"
  13.         .Filters.Clear
  14.         .Filters.Add "Excelファイル", "*.xlsx; *.xlsm; *.xls"
  15.         If .Show = -1 Then
  16.             txtFile.Text = .SelectedItems(1)
  17.         End If
  18.     End With
  19. End Sub
  20. Private Sub btnAggregate_Click()
  21.     If txtFile.Text = "" Or txtCodeCol.Text = "" Or txtDateCol.Text = "" Or txtAmountCol.Text = "" Then
  22.         MsgBox "ファイルと各列をすべて指定してください", vbExclamation
  23.         Exit Sub
  24.     End If
  25.     If txtCodeCol.Text = txtDateCol.Text Then
  26.         MsgBox "コード列と日付列に同じ値は指定できません", vbExclamation
  27.         Exit Sub
  28.     End If
  29.     If txtCodeCol.Text = txtAmountCol.Text Then
  30.         MsgBox "コード列と金額列に同じ値は指定できません", vbExclamation
  31.         Exit Sub
  32.     End If
  33.     If txtDateCol.Text = txtAmountCol.Text Then
  34.         MsgBox "日付列と金額列に同じ値は指定できません", vbExclamation
  35.         Exit Sub
  36.     End If
  37.     Application.ScreenUpdating = False
  38.     
  39.     Dim colLetter As String
  40.     colLetter = UCase(txtCodeCol.Text) ' 大文字に統一
  41.     ' 列記号が正しいかと、2行目のセルに値があるか確認
  42.     Dim wb As Workbook
  43.     Set wb = Workbooks.Open(txtFile.Text)
  44.     Dim srcWs As Worksheet
  45.     Set srcWs = wb.Sheets(1) ' 最初のシートを対象に
  46.     Dim checkValue As Variant
  47.     On Error Resume Next
  48.     checkValue = srcWs.Range(colLetter & "2").Value
  49.     On Error GoTo 0
  50.     ' コード列記号の妥当性チェック
  51.     If Not IsValidColumnLetter(colLetter) Then
  52.         MsgBox "コード列記号が無効です。" & vbCrLf & "A ? XFD の範囲で入力してください。", vbExclamation
  53.         Application.ScreenUpdating = True ' MsgBox後に復元
  54.         wb.Close SaveChanges:=False
  55.         Exit Sub
  56.     End If
  57.     If IsEmpty(checkValue) Or checkValue = "" Then
  58.         MsgBox "範囲外のコード列指定になっています。" & vbCrLf & _
  59.                "指定したコード列の2行目に値がありません。", vbExclamation
  60.         Application.ScreenUpdating = True ' MsgBox後に復元
  61.         wb.Close SaveChanges:=False
  62.         Exit Sub
  63.     End If
  64.     colLetter = UCase(txtDateCol.Text) ' 大文字に統一
  65.     ' 日付列記号の妥当性チェック
  66.     If Not IsValidColumnLetter(colLetter) Then
  67.         MsgBox "日付列記号が無効です。" & vbCrLf & "A ? XFD の範囲で入力してください。", vbExclamation
  68.         Application.ScreenUpdating = True ' MsgBox後に復元
  69.         wb.Close SaveChanges:=False
  70.         Exit Sub
  71.     End If
  72.     colLetter = UCase(txtAmountCol.Text) ' 大文字に統一
  73.     ' 金額列記号の妥当性チェック
  74.     If Not IsValidColumnLetter(colLetter) Then
  75.         MsgBox "金額列記号が無効です。" & vbCrLf & "A ? XFD の範囲で入力してください。", vbExclamation
  76.         Application.ScreenUpdating = True ' MsgBox後に復元
  77.         wb.Close SaveChanges:=False
  78.         Exit Sub
  79.     End If
  80.     Application.ScreenUpdating = True
  81.     ' 実行
  82.     Call 集計処理(txtFile.Text, UCase(txtCodeCol.Text), UCase(txtDateCol.Text), UCase(txtAmountCol.Text))
  83. End Sub
  84. Private Sub btnClose_Click()
  85.     Application.WindowState = xlNormal
  86.     ThisWorkbook.Save
  87.     Application.Quit
  88. End Sub
  89. Function IsValidColumnLetter(colLetter As String) As Boolean
  90.     On Error GoTo ErrHandler
  91.     Dim rng As Range
  92.     Set rng = Worksheets(1).Range(colLetter & "1")
  93.     IsValidColumnLetter = True
  94.     Exit Function
  95. ErrHandler:
  96.     IsValidColumnLetter = False
  97. End Function

【検証済】コードをコピペ:標準モジュール(Module1)

 

下記、標準モジュールをコピーします

  1. Option Explicit
  2. Public Sub 集計処理(filePath As String, codeCol As String, dateCol As String, amountCol As String)
  3.     Application.ScreenUpdating = False
  4.     Application.DisplayAlerts = False
  5.     
  6.     Dim wb As Workbook
  7.     Dim ws As Worksheet
  8.     Dim lastRow As Long
  9.     Dim codeDict As Object: Set codeDict = CreateObject("Scripting.Dictionary")
  10.     Dim codeColNum As Long
  11.     Dim dateColNum As Long
  12.     Dim amountColNum As Long
  13.     
  14.     Set wb = Workbooks.Open(filePath)
  15.     Set ws = wb.Sheets(1)
  16.     ' 列番号取得
  17.     codeColNum = Range(codeCol & "1").Column
  18.     dateColNum = Range(dateCol & "1").Column
  19.     amountColNum = Range(amountCol & "1").Column
  20.     lastRow = ws.Cells(ws.Rows.Count, codeColNum).End(xlUp).row
  21.     ' ソート
  22.     ws.Sort.SortFields.Clear
  23.     ws.Sort.SortFields.Add Key:=ws.Cells(2, codeColNum), Order:=xlAscending
  24.     ws.Sort.SortFields.Add Key:=ws.Cells(2, dateColNum), Order:=xlAscending
  25.     With ws.Sort
  26.         .SetRange ws.Range("A1", ws.Cells(lastRow, ws.Cells(1, Columns.Count).End(xlToLeft).Column))
  27.         .header = xlYes
  28.         .Apply
  29.     End With
  30.     ' コードごとにデータ格納
  31.     Dim i As Long
  32.     For i = 2 To lastRow
  33.         Dim code As String, dt As String, amt As Double
  34.         code = Trim(ws.Cells(i, codeColNum).Value)
  35.         dt = Format(ws.Cells(i, dateColNum).Value, "yyyy/mm/dd")
  36.         amt = ws.Cells(i, amountColNum).Value
  37.         
  38.         If code <> "" And dt <> "" And IsNumeric(amt) Then
  39.             If Not codeDict.exists(code) Then
  40.                 codeDict.Add code, CreateObject("Scripting.Dictionary")
  41.             End If
  42.             
  43.             With codeDict(code)
  44.                 If .exists(dt) Then
  45.                     .Item(dt) = .Item(dt) + amt
  46.                 Else
  47.                     .Add dt, amt
  48.                 End If
  49.             End With
  50.         End If
  51.     Next i
  52.     ' シート作成
  53.     Dim codeKey As Variant
  54.     For Each codeKey In codeDict.Keys
  55.         If シート存在チェック(wb, codeKey) Then
  56.             MsgBox "コード [" & codeKey & "] のシートはすでに存在します。処理を中止します。", vbInformation
  57.             wb.Close SaveChanges:=False
  58.             GoTo EndProc
  59.         End If
  60.         
  61.         Dim newWS As Worksheet
  62.         Set newWS = wb.Sheets.Add(After:=wb.Sheets(wb.Sheets.Count))
  63.         newWS.Name = codeKey
  64.         
  65.         ' ヘッダー
  66.         newWS.Range("A1") = "日付"
  67.         newWS.Range("B1") = "合計金額"
  68.         
  69.         ' データ出力
  70.         Dim row As Long: row = 2
  71.         Dim dtKey As Variant
  72.         For Each dtKey In codeDict(codeKey).Keys
  73.             newWS.Cells(row, 1).Value = dtKey
  74.             newWS.Cells(row, 2).Value = codeDict(codeKey)(dtKey)
  75.             row = row + 1
  76.         Next dtKey
  77.         
  78.         newWS.Cells.EntireColumn.AutoFit
  79.     Next codeKey
  80.     wb.Save
  81.     wb.Close SaveChanges:=True
  82.     MsgBox "集計完了しました", vbInformation
  83. EndProc:
  84.     Application.ScreenUpdating = True
  85.     Application.DisplayAlerts = True
  86. End Sub
  87. Private Function シート存在チェック(wb As Workbook, codeKey As Variant) As Boolean
  88.     Dim ws As Worksheet
  89.     For Each ws In wb.Sheets
  90.         If ws.Name = codeKey Then
  91.             シート存在チェック = True
  92.             Exit Function
  93.         End If
  94.     Next
  95.     シート存在チェック = False
  96. End Function

 

 

作成したマクロを保存します

作成したマクロを保存します①

 

作成したマクロを保存します②

 

作成したマクロを保存します③

 

作成したマクロを保存します④

 

 

作成したマクロを実行

 

マクロ実行前にシートを分けたい対象のExcelをチェック

 

マクロ実行でシートごとにコード別日別集計チェック①

 

 

マクロ実行でシートごとにコード別日別集計チェック②

 

マクロ実行でシートごとにコード別日別集計チェック③

 

マクロ実行でシートごとにコード別日別集計チェック④

 

マクロ実行でシートごとにコード別日別集計チェック⑤

 

フォームでチェックしている項目について

フォームでチェックしている項目について①

 

フォームでチェックしている項目について②

 

フォームでチェックしている項目について③

 

フォームでチェックしている項目について④

 

フォームでチェックしている項目について⑤

 

フォームでチェックしている項目について⑥

 

フォームでチェックしている項目について⑦

 

 

マクロの条件について

 

初心者向けマクロの作り方|コードごとの自動集計シート作成であなたの作業はもっと楽になる

このようなマクロを使えば、あなたの毎日のデータ整理や、月末の資料作成もぐっとラクになります。

「マクロって難しそう…」と思っていた方も、命令からコツコツ覚えるのも大切ですが、まずは、コピペしたマクロを実感してください。

ぜひ一度使ってみてください。

 

📌まずはコピペでOK。少しずつ「わかる」に近づこう

このページでは、難しいことは抜きにして「まずはコピペで業務を効率化する」ことを目的にしています。でも、使っているうちに「この命令って何をしてるんだろう?」と気になる場面も出てくるはずです。そんなときに役立つのが 「VBAエキスパート資格解説書」

基準をもってVBAの理解を深めたい方におすすめです。

👉初心者の人は、Excel VBAエキスパートベーシック解説書

👉マクロの基礎知識がある人は、Excel VBAエキスパートスタンダード解説書

初心者向けマクロの作り方|もし、ダメだ動かない。わからないなど気になることがあれば・・・

以下、お問い合わせ内容は、後日まとめて対応内容を本記事に掲載します。

メールアドレスの入力はありませんので、お気軽にお問い合わせください。