分散WordVBAマクロの更新-それは可能ですか、どのように行いますか?
質問
Word 2003で実行されるVBAマクロがあります。これは1つのモジュールであり、ユーザーフォームにコードが添付されており、約30のクライアントサイトにアクセスします。これを最初にロールアウトしたとき、30個のボックスのそれぞれのWord Startupフォルダーに.dotテンプレートを配置するために、各サイトに誰かを送りました。これにより、マクロが各ユーザーのツールバーのボタンとして表示されます。
すべてのユーザーはインターネットに接続されています。
.dotテンプレートの場所はマシンごとに異なるため、「インストーラー」は機能しなくなると思いますか?
作成したマクロは時々変更する必要があると思います。ユーザーにボタンを押してマクロを更新させる方法はありますか?
プッシュボタンまたは自動実行で更新をチェックするかどうかにかかわらず、ドキュメントが必ずしも保存されていない状態でマクロがどこから実行されているか(パス)を特定する方法と、スタートアップフォルダーツールへのパスを見つける方法を知る必要があると思われます。>オプション>ファイルの場所ですが、プログラムで。
解決
これは実行できます。
-
2つの.dotファイル、loader.dot(更新をチェック)とworker.dot(使用していて自動的に更新できるようにしたいメインマクロ)を作成します。
-
最初のloader.dotは、C:\ Program Files \ Microsoft Office \ OFFICE11 \ STARTUP に配置する必要があります。
これは信頼できる場所であり、マクロは任意のWord文書に読み込まれます。AutoExec()サブルーチンを使用して、Wordドキュメントが読み込まれるたびに実行されるようにします。
worker.dotは、任意の固定インストール場所に配置できます。C:\ yourapp \ worker.dot
loader.dotのロジックは、worker.dotへの参照をすべて削除することです(マクロセキュリティ設定でVBAモデルの信頼を有効にする必要がありました)http呼び出しを使用して更新を確認し、新しいバージョンが利用可能な場合は、worker.dotを上書きしてダウンロードします、worker.dotを指定するファイルから参照を追加します
他のヒント
ユーザーがボタンを押すモデルが理想的かどうかはわかりません。
「ローダー」テンプレートの作成を検討します。その仕事は、起動時に実行し、すでに持っているテンプレート/マクロの更新を探し、変更されたときにそのようなファイルをダウンロード/インストール/することです。次に、ローカルにインストールされているものをロードして使用します。
アップデートが利用可能であるが、誰かがそれを使用していない場合(おそらく、変更がアップロードされる前にWordを起動したか、オフラインである場合)、問題があるかどうかについても考慮する必要があります。また、人々が使用しているバージョンを知る必要がありますか?HTTP、電子メール、またはその他の方法(Twitter?)を介してローダーに報告してもらいます
このようなローダーは、非常に安定している必要があります(そうでない場合は、ターゲットテンプレートの置き換えを追跡することを、ローダーの置き換えを追跡することで置き換える)か、必要に応じて自身を更新できる必要があります。