午後/iPSマクロ研の予定…マクロ残高証明の作成


 お知らせ


 マクロ残高証明

§1.データを揃えるため、サンプルデータをダウンロードする
  1. [麻里府発]の まりふのひとの「公開」SkyDrive に移動し、
  2. フォルダー「麻里府パソコン同好会」をクリックし、(開く)
  3. フォルダ「iPSマクロ研」をクリックする。 (開く)
  4. 「2014-0117_出納帳サンプルデータ」(圧縮(zip形式)フォルダ)にチェックを入れ、
  5. [ダウンロード]をクリックする。
  6. [ファイルを開く]。
  7. 「2014-0117_出納帳サンプルデータ.xlsm」を右クリック ⇒[コピー]する。
  8. 保存先フォルダーを開き‥‥ 貼り付ける。

§2.サブ「残金を集計する」を解析する
≪コード≫
  1. Sub 残金を集計する()
  2. Dim i As Long
  3. Dim LastRow As Long
  4. Dim sRange As String
  5.  
  6. Sheets("作業用").Select
  7. ActiveCell.SpecialCells(xlLastCell).Select
  8. sRange = "$A$2:" & ActiveCell.Address
  9.  
  10. Sheets("名前").Select
  11. Range("C1").Select
  12. Selection.End(xlDown).Select
  13. LastRow = ActiveCell.Row
  14.  
  15. For i = 2 To LastRow
  16. If IsError(Application.VLookup(Cells(i, 3), Worksheets("作業用").Range(sRange), 3, False)) Then
  17. Cells(i, 5) = ""
  18. Else
  19. Cells(i, 5) = Application.VLookup(Cells(i, 3), Worksheets("作業用").Range(sRange), 3, False)
  20. End If
  21.  
  22. If IsError(Application.VLookup(Cells(i, 3), Worksheets("作業用").Range(sRange), 4, False)) Then
  23. Cells(i, 6) = ""
  24. Else
  25. Cells(i, 6) = Application.VLookup(Cells(i, 3), Worksheets("作業用").Range(sRange), 4, False)
  26. End If
  27.  
  28. Cells(i, 7) = Cells(i, 4) + Cells(i, 5) - Cells(i, 6)
  29. Next
  30. Range("A1").Select
  31.  
  32. End Sub
≪補足説明≫
  • 7行目:Ctrl+End([作業用]シートの表の右下隅のセルをアクティブにする)
  • 8行目:VLookup で参照する表の範囲(A2〜D12)を sRange にセットする。($A$2:$D$12)
  • 12行目:Ctrl+↓
  • 13行目:C列の最終行を LastRow にセットする。
  • 15行目〜29行目:For〜Nextステートメント ‥‥ テキスト P.126 STEP6 処理を繰り返す
  • 16行目〜20行目:If〜Then〜Else〜End If ‥‥ テキスト P.102 STEP3 制御構造を使用する
  • 16行目〜17行目:VLookup関数で作業用シート $A$2:$D$12 を検索した時、見つからなかった(エラーになった)時、"" とする。
  • 19行目:見つかった時は、預り金を返す。
  • 22行目〜25行目:同様に、出金額を返す。
  • 28行目:残金額を計算する。
  • 30行目:終わったら、セルA1 をアクティブにしておく。
§3.画面の更新を禁止する

動作確認が終わったら、仕上げとして、画面の更新を禁止します。
[名前]シートを選択しておき、下記を実行して、確認します。

  1. Sub aa出納帳編集()
  2.  
  3. Application.ScreenUpdating = False
  4. Call 集計シートのクリア
  5. Call 作業用シートのクリア
  6. Call 出納帳を名前で並べ替える
  7. Call 出納帳を集計する
  8. Call 名前の集計を取り去る
  9. Call 残金を集計する
  10. Application.ScreenUpdating = True
  11.  
  12. End Sub