■ お知らせ
- セキュリティ チェックを行います。
- 個人的事情について
- 下松市の会社より Microsoft Access システムの「管理」を依頼され...
- 平成26年度の麻里府パソコン同好会を考える
■ マクロ残高証明
§1.データを揃えるため、サンプルデータをダウンロードする
- [麻里府発]の まりふのひとの「公開」SkyDrive に移動し、
- フォルダー「麻里府パソコン同好会」をクリックし、(開く)
- フォルダ「iPSマクロ研」をクリックする。 (開く)
- 「2014-0117_出納帳サンプルデータ」(圧縮(zip形式)フォルダ)にチェックを入れ、
- [ダウンロード]をクリックする。
- [ファイルを開く]。
- 「2014-0117_出納帳サンプルデータ.xlsm」を右クリック ⇒[コピー]する。
- 保存先フォルダーを開き‥‥ 貼り付ける。
§2.サブ「残金を集計する」を解析する
≪コード≫
- Sub 残金を集計する()
- Dim i As Long
- Dim LastRow As Long
- Dim sRange As String
- Sheets("作業用").Select
- ActiveCell.SpecialCells(xlLastCell).Select
- sRange = "$A$2:" & ActiveCell.Address
- Sheets("名前").Select
- Range("C1").Select
- Selection.End(xlDown).Select
- LastRow = ActiveCell.Row
- For i = 2 To LastRow
- If IsError(Application.VLookup(Cells(i, 3), Worksheets("作業用").Range(sRange), 3, False)) Then
- Cells(i, 5) = ""
- Else
- Cells(i, 5) = Application.VLookup(Cells(i, 3), Worksheets("作業用").Range(sRange), 3, False)
- End If
- If IsError(Application.VLookup(Cells(i, 3), Worksheets("作業用").Range(sRange), 4, False)) Then
- Cells(i, 6) = ""
- Else
- Cells(i, 6) = Application.VLookup(Cells(i, 3), Worksheets("作業用").Range(sRange), 4, False)
- End If
- Cells(i, 7) = Cells(i, 4) + Cells(i, 5) - Cells(i, 6)
- Next
- Range("A1").Select
- 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.画面の更新を禁止する
動作確認が終わったら、仕上げとして、画面の更新を禁止します。
[名前]シートを選択しておき、下記を実行して、確認します。
- Sub aa出納帳編集()
- Application.ScreenUpdating = False
- Call 集計シートのクリア
- Call 作業用シートのクリア
- Call 出納帳を名前で並べ替える
- Call 出納帳を集計する
- Call 名前の集計を取り去る
- Call 残金を集計する
- Application.ScreenUpdating = True
- End Sub