毎月の請求書を実行するために使用する古いExcel4マクロがあります。約3000行で、Excel 5ダイアログボックスシート(ダイアログボックス用)が多数あります。それをVBAに変更する最も簡単な方法と、それが価値があるかどうかを知りたいです。また、VBAに変換した後、それからスタンドアロンアプリケーションを作成するにはどうすればよいですか?
4 に答える
私はこれを以前に試みましたが、最終的にはBiriが言ったように書き直す必要があります.
私は、会社が Windows NT から Windows XP にアップグレードしていたときに、この作業をかなり行いました。古いコードをまったく見ずに、最初からやり直す方が簡単であることがよくあります。特に「奇妙な」ダイアログ ボックスの表記に関して、Excel 4 が何をしたかを理解するのに多くの時間を費やすことができます。最終的に、入力と出力が何であるかを知っていれば、多くの場合、より時間効率が良く、よりクリーンに書き直すことができます。
VBA を使用するかどうかは別の問題ですが、VBA はかなり強力で拡張性があるため、多くの状況で .NET などの他のツールを使用したいのですが、うまく機能し、展開も簡単です。
という点で、それは価値がありますか?Excel 4 マクロを再度変更する必要がないと言えるのであれば、そうではないかもしれません。しかし、ビジネスでは、税率、特に年末のことなど、常に変化するものがあります。Excel 4 をサポートする人を見つけたり、ドキュメントを見つけたりするのがいかに難しいかを考えると、VBA に移行しないのはリスクが高いと思いますが、それはバランスを取るためのものです。
(免責事項: 私は Excel-DNA ライブラリを開発しています)
マクロを、Excel マクロ言語とは異なる COM オートメーション オブジェクト モデルを使用する VBA に移動する代わりに、Excel-DNAライブラリで実行される VB.NET (または C#) に移動します。
Excel-DNA では、マクロ言語を非常によく反映した C API を使用できます。ダイアログなどのすべてのマクロ コマンドには、同じパラメーターを使用する C API 関数があります。たとえば、DIALOG.BOX に相当するものは xlfDialogBox です。このスレッドにいくつかの議論と例があります: http://groups.google.com/group/exceldna/browse_thread/thread/53a8253269fdf0a5。
この移行の大きな利点の 1 つは、COM オートメーション インターフェイスを使用するようにコードの一部を徐々に変更できることです。Excel-DNA を使用すると、COM インターフェイスと C API を組み合わせることができます。
私の知る限り、何らかの方法で変換する可能性はありません。基本的にVBAで書き直す必要があります。
VBA に変換した場合、スタンドアロン アプリケーションとして実行することはできません。VBA が Visual Basic for Application と述べているように、それはアプリケーション (Word、Excel、Scala など) 内に存在します。
スタンドアロン アプリケーションを作成するには、標準言語 (マクロ言語ではない) を習得する必要があります。しかし、言語そのものよりもはるかに多くを学ばなければなりません。Excelシートの代わりにデータベースを扱う、Excelの印刷の代わりに印刷するなど、さまざまなテクニックを学ぶ必要があります。したがって、基本的に、Excel を使用すると明らかな多くの機能が失われます。
このトピックに関する優れた記事は次のとおりです。http://msdn.microsoft.com/en-us/library/aa192490.aspx
VB2008-Expressは、http://www.microsoft.com/express/default.aspxから無料でダウンロードできます。