■ 更新履歴
- 2013.09.15 ver.0.14 ‥‥ この時点でとりあえず公開した。
- マクロのファイルとデータファイルの二本立てとした。
- マクロを改修した時、ファイルの入れ替えが容易に出来るようにするのが目的。
- マクロ入りのファイルがファイル名で判るようにしたかった。
- データファイルの更新は多いので、開く度に「マクロの警告」が出るのは好ましくない...
- 最初のシートに「更新履歴」のシートを新設した。
- [更新履歴]シートに[新規作成]ボタンを置き、マクロ「S1_新規作成」の起動を容易化した。
- マクロのファイルとデータファイルの二本立てとした。
§1.準備
- マクロ残高証明書.xlsm を開き、
- [原稿]および[集計]シートの内容を確認する。
- 修正した場合は、次回に反映させるため上書き保存する。
§2.新規作成
- [更新履歴]シートの[新規作成]ボタンをクリックする。
- マクロ名「S1_新規作成」を[実行]してもよい。
- 確認画面が出るので
- [はい]: Step3 へ
- [いいえ]: Step4 へ
- [キャンセル]: 新規作成を中断する。
- 新規ブックを作成し、(自動)
- [Sheet1]に、マクロ残高証明書 の[原稿]シートをコピペし、シート名を“原稿”に変更する。
- [Sheet2]に、マクロ残高証明書 の[集計]シートをコピペし、シート名を“集計”に変更する。
- [Sheet3]は削除する。
- 終了すると、マクロ「原稿シートを名前分コピーする」を実行するか問い合わせる。
- [はい]: 次の「§3.名前分の[原稿]シートを作る」へ進む。
- [いいえ]: 終了する。
- 確認したい場合や、[原稿]または[集計]シートのミスに気が付いた時など。
- 引き続き、§3に進めるには、手動でマクロを起動する必要がある。
§3.名前分の[原稿]シートを作る
- 手動で起動する時は、マクロ名「S2_原稿シートを名前分コピーする」を[実行]する。
- 起動すると、「来月の日付を入力してください」の問い合わせが出る。
- 「年/月」が重要で、「日」は何時でもよい。
- 表示通りで問題なければ[OK]をクリックする。
- 変更する時は修正し、[OK]をクリックする。
- [いいえ]をクリックすると、終了する。
- [集計]シートの名前分のシートができる。
- 終了すると、「名前を付けて保存しますか?」の問い合わせが出る。
- [はい]をクリックすると、【名前を付けて保存】ダイアログボックスが出る。
デフォルトは- 保存先: マクロがあるフォルダー
- ファイル名: シートの表題
- ファイルの種類: 拡張子 .xls (Excel 97-2003 ブック)
- [いいえ]をクリックすると、終了する。
- [はい]をクリックすると、【名前を付けて保存】ダイアログボックスが出る。
- 名前を付けて保存すると、マクロファイルも閉じられる。(見た目は判らない)
§4.残高集計
- 残高証明書ブックを開く。
- 残高証明書ブックの[ファイル]タブから「マクロ残高証明書.xlsm」を開く。
- 残高証明書ブックから、マクロ名「S3_残高集計」を[実行]する。
まず、[集計]シートの名前と、シート名との間の整合性をチェックする。- 不整合があればエラーメッセージが出る。
- 不整合が見つかれば、その時点で処理を中止する。(次の不整合を探さない)
- 終了すると、「残高合計は **** 円でした」のメッセージが出る。
- マクロは手動で閉じる必要がある。
■ 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 整合性チェック ‥‥ 関数
- シート数をセットし(172)、
- メモリ中にテーブルを作る(173)。
- “原稿”,“集計”を除くシート名のテーブルを作る(No.176〜182)。
- テーブル数が 0 ならば、メッセージを出して終わる(No.184〜187)。
- [集計]シートの名前を 1っずつ読んで、メモリー中のテーブルにあるかチェックする(No.189〜202)。
- 無いものが見つかったら、メッセージを出して終わる(No.198〜201)。
- メモリ中のテーブルを 1っずつ読んで、[集計]シートの名前にあるかチェックする(No.204〜213)。
- 無いものが見つかったら、メッセージを出して終わる(No.214〜217)。
- No.224 名前を付けて保存する ‥‥ 関数
- マクロブックがある場所をデフォルトの保存場所にしている(No.232〜233)。
- デフォルトの拡張子は .xls にしている(No.235〜236)。‥‥ たぶん
- No.253 get更新履歴名 ‥‥ ユーザー関数
- [更新履歴]のタイトルを作るユーザー関数。
- ファイル名が変わったら、タイトルも自動的に変わるようにするために作成。
- 引数の 0 は拡張子なし。1(0 以外)は拡張子付き
更新概要
- 2013.09.15 ver.0.14 ‥‥ この時点で開発を終えたことにする。
- マクロのファイルとデータファイルの二本立てとした。
- マクロを改修した時、ファイルの入れ替えが容易に出来るようにするのが目的。
- マクロ入りのファイルがファイル名で判るようにしたかった。
- データファイルの更新は多いので、開く度に「マクロの警告」が出るのは好ましくない...
- 最初のシートに「更新履歴」のシートを新設した。
- [更新履歴]シートに[新規作成]ボタンを置き、マクロ「S1_新規作成」の起動を容易化した。
- マクロのファイルとデータファイルの二本立てとした。