• 締切済み

[VBA] マクロファイルの管理について

こちらの識者の方々にはいつもお世話になっております。 VBAの質問で、環境は下記になります。 OS=windows7 pro 64bit Office=Excel2010(14.0.7128.5000) 業務でたくさんのマクロを作成(仮にA-Zとします)し、複数人が使用しているのですが、作成しすぎて管理が大変になってきました。 そこで、1つのxlamファイル(仮にmasterファイルとします)に全ての実行コードを書き、A-Zのファイルからはmasterファイルを読み取り専用で開き、指定のプロシージャを必要な引数を渡して呼び出すだけのコードを記載する、という方式に変えようと思っています。(masterファイルには書き込みのパスワードを設定します) masterファイルのコードは全て標準モジュールに記載し、基本的には1モジュールあたり1プロシージャにしようと思っています。(masterのプロシージャから別のプロシージャを呼び出すことはせず、A-Zのマクロからmasterの1つのプロシージャを呼び出して完結させる) さらにFunctionや定数用のモジュールを一つ作り、よく使うfunctionや定数などはそこに書こうと思っています。 メリットとしては下記のようなものがあげられると思っています。 ・コードの改修が容易(誰かが開いていても改修できる) ・作成したマクロの管理が容易 ・よく使うFunctionなどは1回だけ書けばどのプロシージャでも使いまわせる この運用方法で問題ないと思っているのですが、懸念されるような事項はありますでしょうか? また別件なのですが、masterファイルのセキュリティを高める意味で、 「A-Zのファイルから開く以外の手段でmasterファイルが開かれた場合は、自動でmasterファイルを閉じる」 というような処理は可能でしょうか? 例えば、workbook_openイベントなどを使って、特定の引数が受け渡されなければ thisworkbook.close false などでmasterファイルを閉じる、といったような感じです。 質問に不備不足等ございましたらご指摘ください。 ご面倒お掛けしますがよろしくお願いします。

みんなの回答

回答No.1

素人の目線からで申し訳ありませんが・・ もちろん運用の仕方によりますが、 応用したい(処理を「今だけ」若干変えたい)に対応しづらいのが 大きなデメリットなのかもしれません。 マスターファイルでも結構かと思うのですが、 必要と思われるプロシージャをエクスポートして、 まるっきり別なファイルとして持ち、 必要に応じてインポートして使う、 という運用ではどうなのでしょう? どちらにしても作成蓄積用のマスターファイルは 必要なのかもしれませんが 誤上書き・誤削除等の危険は更に減ると思いますし、 知らぬ間に改訂されていて 「AA-ZZファイルに最適化されて、A-Zファイルには不適」 という予期せぬ事故も防げるのではないでしょうか。 改訂するたびに配布した全カ所を書き換える・・ という手間が発生するのがデメリットかもしれませんが・・

rihitomo
質問者

お礼

ありがとうございます。 参考になりました。

関連するQ&A

専門家に質問してみよう