0

さまざまな部門/人員が、その部門、人、またはすべてに特に適用されるさまざまなレポートを表示するために使用する XLS を作成しています。

レポートの数が非常に多くなるため、ファイルのサイズを制限したいと考えています。利用可能なレポートは現在、SQL Server から取得されて一覧表示されます。ユーザーは、必要なレポートの横に「X」を入力し、GENERATE をクリックします。

レポートは、その場で作成され、ファイルが閉じられると削除されるワークシートで生成されます。

現時点では、必要な特定のレポートごとにモジュールを用意する必要があります。数行のものもあれば、多くの設定を必要とするピボット テーブルや、多くの書式設定が必要な一般的なテーブルなど、さらに多くのものもあります。

データベースから vba をテキストとして取得し、VBA として実行することはできますか?

4

1 に答える 1

1

VBA を使用して動的に書き込みコードを追加できますが、VB オブジェクト モデルへのプログラムによるアクセスを許可し、ユーザーが使用する Excel のバージョンに応じてさまざまな信頼設定を変更する必要があります。ウイルス スキャナは、VB オブジェクト モデルを参照するモジュールをセキュリティ上の脅威と見なして削除することもできます。

そうです、その場で文字列から VBA コードを作成することで、リモートに保存されたコードからコードを実行できます。

チップ・ピアソンはこれをかなりよくカバーしています: http://www.cpearson.com/excel/vbe.aspx

とは言っても、これはあまりお勧めしません。VBA コードは多くのスペースを占有しません。結局のところテキストだけなので、すべてのコードをワークブックに残しておきたくなるでしょう。よりシンプルで、ユーザーにとってより簡単です。合併症が少なくなります。

これを行いたくない場合は、すべてのコードをアドインに入れることをお勧めします。アドインは、作成するワークブックとは別のものになりますが、コードを動的に生成する欠点がなく、すべての機能を使用できます。

于 2012-10-12T20:41:08.063 に答える