3

MS Access 2007 と Excel 2007 の両方で単一のアプリケーション内で VBA プロジェクトを実行したことがありますが、複数のアプリケーションを同時に自動化したことはありません。一般化されたプロジェクトは、アクセスを開き、さまざまなテーブルにデータを追加するいくつかの更新クエリを実行することです。次に、Excel でデータを取得する必要があります。Excel では、日付範囲を自動的に変更しないグループ化など、いくつかの書式設定の変更が必要です。最後に、Excel ファイルが自動的に電子メールで送信されるように構築する予定です。

Excel が Access から ODBC を介してデータを取得するなど、これを達成する方法が明確な部分もあります。しかし、マスター VBA はどこに置くべきでしょうか? Access VBA の実行を開始するボタンを Access に配置することもできますが、Access VBA で Excel の操作を開始するのは良い方法ですか? それはデバッグを難しくしますか?

4

6 に答える 6

3

Access から開始するには、Excel オブジェクト ライブラリへの参照を追加します。次に、オブジェクト ブラウザーを使用して、Excel オブジェクト階層が Access 内からどのように見えるかを理解します。Excel コードの最上位オブジェクトは (Access と同様に) 暗黙的であり、Access でコーディングするときに明示的に参照する必要があるため、多少の違いがあります。

Access 開発者ハンドブックには、Access からの Office の残りの部分の自動化に関する優れた章があります。

最後に、他のアプリの自動化ライブラリへの参照を使用してプログラミングを支援するコードを作成したら、遅延バインディングに切り替えて参照を削除できるようにすることをお勧めします。これは、外部ライブラリの特定のデータ型を使用せず (ほとんどの場合、プレーンなオブジェクト変数を使用します)、外部ライブラリで定義された定数を使用しないことを意味します。レイト バインディングを使用する私の製品コードには、通常、コメント アウトされたアーリー バインディング バージョンとレイト バインディング バージョンが含まれます。

于 2009-05-21T20:42:32.737 に答える
1

お探しのキーワードは「マイクロソフト オフィス オートメーション」だと思います。

COM インターフェイスをサポートするお気に入りのプログラミング言語でアプリケーションを作成し、オートメーションを使用してさまざまなオフィス アプリケーションで操作を行います。

ここを見てくださいc# どのようにExcelセルにアクセスしますか? ここでは c# を使用して Excel ファイルのデータを読み取る方法を教えてください。そしてグーグル。

于 2009-05-21T20:19:17.870 に答える
1

コードは、Access または Excel に配置できます。私の経験では、コードを 2 つに分割するよりも作業が簡単です (これも機能します)。

自動化コードの実行が遅すぎることがわかった場合は、コードを分割して、Access の関数によって Access を実行し、Excel の関数から Excel を実行し、マスター コードが両方でルーチンを実行するだけにすることができます。この場合、物事を開始するための最も優れたユーザー インターフェイスが得られる場所ならどこでも、マスター コードを配置できます。私は C、Access、Word、Excel を使用しましたが、すべてのコードが別の場所にあれば、スタート ボタンをどこに配置しても問題ありません。

ユーザーまたはメンテナーが 1 つのアプリケーションに精通している場合は、そこにメイン コードまたはマスター コードを置きたいと思うかもしれませんが、多くの場合、メイン コードまたはマスター コードをアプリケーションの根幹と共に配置する方がよいことがわかります。他のパートナーにはコードがまったくありません。

簡単な説明からすると、Excel でより多くの作業が行われるように思われるので、すべてのコードをそこに置きます。

Access からデータを引き出すには、Access Application オブジェクトさえ必要ありません。DAO、ADO、または ODBC オブジェクトが機能し (または DDE でさえ)、両方のアプリケーションを使用するよりもはるかに高速で、堅牢で、簡単で、はるかに優れています。開いて自動化します。

Access から開始する場合、このプロジェクトには Excel オートメーション オブジェクトが必要なようです。これは今ではうまく機能しますが、Excel と DAO オブジェクトだけで行うと、まだはるかに遅く、脆弱です。

于 2012-12-06T11:30:42.740 に答える
1

私は最近、これと非常によく似たことを行い、Excel に非常にうまく読み込まれる書式設定用の組み込み CSS を使用して HTML を出力できることを発見しました。Access を使用して、ユーザーが必要な出力を作成できるようにし、Excel を開いて結果を表示するだけにしました。HTML 出力を使用すると、より優れた電子メールが作成される場合があります。

于 2009-05-21T20:50:07.137 に答える
-1

Access はプログラミングの世界への入り口でしたが、私は長い間 VBA をやったことがありません。Access 97 から Visual Basic への移行は簡単でした。私は Access を使用して、多くの種類のタスクを実行するための VB フォームのように多くのことを書いたことを覚えています (必ずしもデータベース関係ではありません)。

これが、Accessに固執し、そこからVBAの助けを借りてExcelなどで作業を行うべきだと思う理由です.

幸運を

于 2009-05-21T20:11:58.103 に答える