まりふのひと

Excel VBA/『マクロ残高証明書.xlsm』の使い方(動作)


 更新履歴

  • 2013.09.15 ver.0.14 ‥‥ この時点でとりあえず公開した。
    1. マクロのファイルとデータファイルの二本立てとした。
      • マクロを改修した時、ファイルの入れ替えが容易に出来るようにするのが目的。
      • マクロ入りのファイルがファイル名で判るようにしたかった。
      • データファイルの更新は多いので、開く度に「マクロの警告」が出るのは好ましくない...
    2. 最初のシートに「更新履歴」のシートを新設した。
    3. [更新履歴]シートに[新規作成]ボタンを置き、マクロ「S1_新規作成」の起動を容易化した。



§1.準備
  1. マクロ残高証明書.xlsm を開き、
  2. [原稿]および[集計]シートの内容を確認する。
  3. 修正した場合は、次回に反映させるため上書き保存する。
§2.新規作成
  1. [更新履歴]シートの[新規作成]ボタンをクリックする。
    • マクロ名「S1_新規作成」を[実行]してもよい。
  2. 確認画面が出るので
    • [はい]: Step3 へ
    • [いいえ]: Step4 へ
    • [キャンセル]: 新規作成を中断する。
  3. 新規ブックを作成し、(自動)
    1. [Sheet1]に、マクロ残高証明書 の[原稿]シートをコピペし、シート名を“原稿”に変更する。
    2. [Sheet2]に、マクロ残高証明書 の[集計]シートをコピペし、シート名を“集計”に変更する。
    3. [Sheet3]は削除する。
  4. 終了すると、マクロ「原稿シートを名前分コピーする」を実行するか問い合わせる。
    • [はい]: 次の「§3.名前分の[原稿]シートを作る」へ進む。
    • [いいえ]: 終了する。
      • 確認したい場合や、[原稿]または[集計]シートのミスに気が付いた時など。
      • 引き続き、§3に進めるには、手動でマクロを起動する必要がある。
§3.名前分の[原稿]シートを作る
  1. 手動で起動する時は、マクロ名「S2_原稿シートを名前分コピーする」を[実行]する。
  2. 起動すると、「来月の日付を入力してください」の問い合わせが出る。
    • 「年/月」が重要で、「日」は何時でもよい。
    • 表示通りで問題なければ[OK]をクリックする。
    • 変更する時は修正し、[OK]をクリックする。
    • [いいえ]をクリックすると、終了する。
  3. [集計]シートの名前分のシートができる。
  4. 終了すると、「名前を付けて保存しますか?」の問い合わせが出る。
    • [はい]をクリックすると、【名前を付けて保存】ダイアログボックスが出る。
       デフォルトは
      • 保存先: マクロがあるフォルダー
      • ファイル名: シートの表題
      • ファイルの種類: 拡張子 .xls (Excel 97-2003 ブック)
    • [いいえ]をクリックすると、終了する。
  5. 名前を付けて保存すると、マクロファイルも閉じられる。(見た目は判らない)
§4.残高集計
  1. 残高証明書ブックを開く。
  2. 残高証明書ブック、、、、、、、、の[ファイル]タブから「マクロ残高証明書.xlsm」を開く。
  3. 残高証明書ブック、、、、、、、、から、マクロ名「S3_残高集計」を[実行]する。
     まず、[集計]シートの名前と、シート名との間の整合性をチェックする。
    • 不整合があればエラーメッセージが出る。
    • 不整合が見つかれば、その時点で処理を中止する。(次の不整合を探さない)
  4. 終了すると、「残高合計は **** 円でした」のメッセージが出る。
    • マクロは手動で閉じる必要がある。


 VBAのコード
会員限定とする。マクロを貼り付けただけで、綺麗なコードではないし、エラートラップもチャンとやっていないので...

Excel2010/VBA「マクロ残高証明書.xlsm」ver0.14のコード
  • No.2 Option Explicit ‥‥ 宣言文
    • 変数の宣言を強制している。
  • No.4 Auto_Open ‥‥ ブックを開いた時に自動的に行う処理
    • ウィンドウを後ろに移動する。
  • No.9 S1_新規作成
    • 新規ブックを開き(No.18)、[原稿]シートおよび[集計]シートをコピペする。
    • [Sheet3]は削除する(No.46)。
    • ブックのシート数の既定値(3)を変えていると、実行時エラーとなる
  • No.62 S2_原稿シートを名前分コピーする
    • 今日の日付から来月の日付(1日付)を作り(No.75)、問い合わせる(No.77)。
    • [集計]シートの最後の行No.を取得する(No.89)。
    • C列の 2行目から最後の行まで、下記を繰り返す(No.91〜99)。
      • 名前を読んで(No.92)、
      • シートをコピー(No.93),
      • 各項目をセットする(No.94〜98)。
    • 終わったら、名前を付けて保存するか問い合わせる(No.105)。
    • 名前を付けて保存したら(No.108で関数を呼び出している)、マクロブックを閉じる(No.110〜113)。
  • No.124 S3_残高集計
    • まず、データの整合性をチェックする(No.132 で関数を呼び出している)
    • C列の 2行目から最後の行まで、下記を繰り返す(No.142〜150)。
      • 名前のシートのセルF36をコピーし、
      • [集計]シートの D列のペーストする(No.145〜148)。
      • セルの値を累計する(No.149)。
    • 終わったら、累計を表示する(No.154)。
  • No.158 整合性チェック ‥‥ 関数
    1. シート数をセットし(172)、
    2. メモリ中にテーブルを作る(173)。
    3. “原稿”,“集計”を除くシート名のテーブルを作る(No.176〜182)。
    4. テーブル数が 0 ならば、メッセージを出して終わる(No.184〜187)。
    5. [集計]シートの名前を 1っずつ読んで、メモリー中のテーブルにあるかチェックする(No.189〜202)。
    6. 無いものが見つかったら、メッセージを出して終わる(No.198〜201)。
    7. メモリ中のテーブルを 1っずつ読んで、[集計]シートの名前にあるかチェックする(No.204〜213)。
    8. 無いものが見つかったら、メッセージを出して終わる(No.214〜217)。
  • No.224 名前を付けて保存する ‥‥ 関数
    • マクロブックがある場所をデフォルトの保存場所にしている(No.232〜233)。
    • デフォルトの拡張子は .xls にしている(No.235〜236)。‥‥ たぶん
  • No.253 get更新履歴名 ‥‥ ユーザー関数
    • [更新履歴]のタイトルを作るユーザー関数。
    • ファイル名が変わったら、タイトルも自動的に変わるようにするために作成。
    • 引数の 0 は拡張子なし。1(0 以外)は拡張子付き


更新概要

  • 2013.09.15 ver.0.14 ‥‥ この時点で開発を終えたことにする。
    1. マクロのファイルとデータファイルの二本立てとした。
      • マクロを改修した時、ファイルの入れ替えが容易に出来るようにするのが目的。
      • マクロ入りのファイルがファイル名で判るようにしたかった。
      • データファイルの更新は多いので、開く度に「マクロの警告」が出るのは好ましくない...
    2. 最初のシートに「更新履歴」のシートを新設した。
    3. [更新履歴]シートに[新規作成]ボタンを置き、マクロ「S1_新規作成」の起動を容易化した。