次のような構造のルーチンが 1 つあります。
C#
コンソール C がxl
ワークブック A を開く- C は、VBA を使用してターゲット ワークシートを PDF として保存する A のマクロ M を実行します。
- 次に、C
PDFsharp
は PDF ファイルの暗号化に使用します。 - 次に、C はこのファイルを電子メールで送信します。
現在、この手順は 1 つのレポート用であるため、アーキテクチャが教科書的でなくても問題ありません。
将来的には、多くの異なるワークブックに多くのターゲット ワークシートがあり、すべてが多くの異なる受信者に送られる可能性があると思います。この場合、このVBA
コードをすべてのターゲット ワークブックにコピーする必要がないため、ステップ 2 に進む必要があります。私の経験が限られているので、私が想像できる唯一の代替案は次のとおりです。
- 現在の VBA コードを Excel から取り出し、への参照を使用して C に移動します。
Excel.Interops
ターゲット ワークシートが完成した記事であると仮定すると、つまり PDF に移動する前にそれ以上の操作は必要ないと仮定すると、このステップを VBA からコンソールに移動するための上記の正しいアプローチになりますか、それとも別のライブラリを使用して PDF を作成する必要がありますか?