0

次のような構造のルーチンが 1 つあります。

  1. C#コンソール C がxlワークブック A を開く
  2. C は、VBA を使用してターゲット ワークシートを PDF として保存する A のマクロ M を実行します。
  3. 次に、CPDFsharpは PDF ファイルの暗号化に使用します。
  4. 次に、C はこのファイルを電子メールで送信します。

現在、この手順は 1 つのレポート用であるため、アーキテクチャが教科書的でなくても問題ありません。

将来的には、多くの異なるワークブックに多くのターゲット ワークシートがあり、すべてが多くの異なる受信者に送られる可能性があると思います。この場合、このVBAコードをすべてのターゲット ワークブックにコピーする必要がないため、ステップ 2 に進む必要があります。私の経験が限られているので、私が想像できる唯一の代替案は次のとおりです。

  1. 現在の VBA コードを Excel から取り出し、への参照を使用して C に移動します。Excel.Interops

ターゲット ワークシートが完成した記事であると仮定すると、つまり PDF に移動する前にそれ以上の操作は必要ないと仮定すると、このステップを VBA からコンソールに移動するための上記の正しいアプローチになりますか、それとも別のライブラリを使用して PDF を作成する必要がありますか?

4

1 に答える 1

0

最も簡単なオプションは、すべてのシート/データを削除してコードをワークシートから VBA アドインに移動し、[名前を付けて保存] を使用してワークブックをアドインに変換し、それを Excel に読み込んで、いつでも利用できます。書き方によっては、いくつかの変更が必要になる場合がありますが、c# への移植ほど大きくはありません。

とはいえ、すべてのコードを 1 か所にまとめることで、プロセス全体を後で簡単に管理できるようになります。さらに、VBA を起動するために Excel を自動化する C# コードが既にあるので、時間があれば今すぐ実行することをお勧めします。

于 2012-12-13T11:46:11.083 に答える