4

私は、Excel ベースのデータベース レポート ツールを作成しました。現在、すべての VBA コードは 1 つの XLS ファイルに関連付けられています。ユーザーは、ツールバーのボタンをクリックしてレポートを生成します。残念ながら、ユーザーが別のファイル名でファイルを保存しない限り、報告されたデータはすべて消去されます。

Word で同様のツールを作成した場合、すべてのコードをテンプレート (.dot) ファイルに入れ、そこから呼び出すことができます。テンプレート ファイルを Office スタートアップ フォルダーに配置すると、Word を起動するたびにテンプレート ファイルが起動します。私のコードを Excel でパッケージ化して配布する同様の方法はありますか? アドインを使用してみましたが、アプリケーション ウィンドウからコードを呼び出す方法が見つかりませんでした。

4

5 に答える 5

10

コードを Excel アドイン (XLA) に移動するだけです。これは起動時に読み込まれます (%AppData%\Microsoft\Excel\XLSTART フォルダーにあると仮定します) が、ワークブックではなくアドインの場合は、マクロと定義されたスタートアップのみが読み込まれます。機能がロードされます。

関数がスプレッドシート自体に依存している場合は、テンプレートとアドインを組み合わせて使用​​することをお勧めします。

このようなアプリケーションの一部を配布しています。Word、Excel、Powerpoint (XLA、PPA、DOT) のアドインと、Office 2007 の「リボン」バージョン (DOTM、XLAM、PPAM) があります。

アドインのスタートアップ コードは、見つからない場合はツールバー ボタンを作成します。これは、任意のワークブック/ドキュメント/その他で、ツールバー ボタンを押すだけでコードを実行できることを意味します (2 つのアクション ボタンと、設定ダイアログを表示する 1 つのボタンがあります)。

テンプレートは実際には VBA コードに適した方法ではありません。アドインは間違いなく適しています...

したがって、起動時にツールバーをロードするには、次のようなものを使用しています.. (ツールバーが存在するかどうかを確認します - コードは開かれたワークシートごとに実行されますが、ツールバーはユーザーセッションに対して永続的です)

Public Sub Workbook_Open()
     ' startup code / add toolbar / load saved settings, etc.
End Sub

それが役立つことを願っています:)

于 2008-08-27T09:22:20.197 に答える
3

私は常に Add-in(xla)/Template(xlt) の組み合わせを使用しています。アドインは、メニュー (または他の UI エントリ ポイント) を作成し、必要に応じてテンプレートを読み込みます。また、保持するデータをデータベース (Access、SQLServer、テキスト ファイル、または xls ファイル) に書き込みます。

最初のルールは、コードをデータから分離しておくことです。その後、後でバグ修正やその他のコード変更があった場合は、新しいアドインを送信できます。そのすべてのテンプレートとデータベースは影響を受けません。

于 2008-09-18T21:39:03.407 に答える
2

Excel の起動ディレクトリに保存されているユーザーの personal.xls ファイルを変更できます (Office のバージョンによって異なります)。ただし、多くのユーザーがいる場合、それは面倒な場合があります。

問題を解決する別の方法は、マクロをテンプレート (.xlt) ファイルに保存することです。次に、ユーザーがそれを開いたときに、元のファイルに上書き保存することはできませんが、新しいファイル名を指定して保存する必要があります。この方法の欠点は、保存されたファイルごとに元のコードの複数のコピーがあちこちに作成されることです。元の .xlt を変更し、誰かが以前に保存した .xls ファイルで古いマクロを再実行すると、手順が狂ってしまう可能性があります。

于 2008-08-27T08:13:04.667 に答える
0

読み取り専用のアクセス許可で Excel をネットワーク フォルダーに保存するにはどうすればよいですか? 認証は統合 Windows 認証で行うことができ、データベースへの接続パスワードを VBA に保存する必要はありません。次に、この場所へのリンクをユーザーに一度だけ配布する必要があります。更新を行う場合、ユーザーの通知なしにそのフォルダー内のデータのみを変更します。

于 2015-10-01T16:40:58.737 に答える
0

ClickOnce の Excel ファイルの展開を調べましたか?

于 2008-09-18T21:40:38.943 に答える