まず、この質問は、C# と VBA の全体的なメリットについて議論することを意図したものではありません。C# に適した部分と VBA に適していると思われる部分を含むプロジェクトがあり、いくつかの異なる方法でビルドする時間がないため、開発を構成する最善の方法を見つけようとしています。どちらが速いかを見てください。ここに質問を投稿するのは、このプロジェクトにとって明らかに魅力的な選択肢になるとは考えていなかった言語が 1 つある可能性があるためです。
プロジェクト:
Web サービス クエリを使用するか、このリストにリンクされている Excel シートの内容を更新して、Sharepoint リストからデータ セットを取得します。
セットのフィールド間の不等式関係を使用して、Sharepoint データ セットをワークブック ファイル名の Excel データ セットに結合します。これは多対多になります。
各一致セットの各ワークブックについて、そのデータの一部を別のフォルダーの新しいワークブックにエクスポートして、各一致セットが独自のフォルダーにあるようにします。
すべてのフォルダーを 1 つのアーカイブに圧縮します。
ステップ 1 は、.NET または VBA のいずれかで十分であるように思われます。手順 2 は C# に適していると思われます。結合クエリが含まれているため、多数の VBA ループを使用するよりも LINQ を使用した方が実行しやすいからです。ステップ 3 には Excel データ転送が含まれます。VBA の方が .NET Interop for Office 操作よりも高速であることに同意する多くの投稿を読んだので、VBA の方が適しています。ステップ 4 は、シェル コマンドに依存するのではなく、DotNetZip を使用できるため、C# の方が適しているようです。
ただし、C# と VBA を混在させると、単一言語のソリューションよりも保守が不便になります。そのため、どのようなアプローチをとればよいかわかりません。