Excel vbaマクロからコンソールにメッセージを印刷する方法はありますか? Excelマクロを呼び出す小さなVB .NETコンソールアプリケーションがあり、マクロコードからのエラーメッセージをコンソールに出力したいのですが。Debug.printは役に立ちません。すぐに表示されるウィンドウにのみ印刷されます。何かアイデアはありますか?
VB .NETプロジェクトとそれが呼び出すマクロの間に通信がないことがわかりました-マクロはVBのコンソールにアクセスできず、例外をスローバックできません。マクロでエラーが発生し、VB。NETコードでは検出されません。VBプロジェクトはマクロを呼び出すだけで実行され、プロジェクトは続行されますマクロで何が起こったのかを知らずに実行しています。これを回避する方法は、マクロにExcelスプレッドシートの特定の指定されたセルにエラーを書き込んでから、VBプロジェクトはそれを読み取り、エラーがあったかどうかを判断するためにそれを使用し、エラーがあった場合はコンソールに書き込みます。一種のチート修正ですが、機能しました。すべての提案に感謝します。
Debug.Write()とConsole.WriteLine()が機能しなかったため、Debug.Print()を使用する必要がありました
Debug.WriteLine()
を使用してデバッグ情報をVisualStudioの[出力]ウィンドウに出力してみることができますが、コンソールアプリケーションを作成しない限り、それを実行できないというしつこい感じがします。
実際に機能しない場合は、Console.SetOut()
メソッドを使用して、Console.WriteLine()
文字列をStreamWriterにリダイレクトしてみてください。StreamWriterはマシン上のファイルである可能性があります。理想的ではありませんが、おそらく実行可能な解決策ですか?
ファイルパスを渡し、すべてのエラーをファイルに書き込みます。
マクロからのエラーメッセージを含む文字列を.Netコードに返し、.Netコードにコンソールに書き込んでもらいませんか?
または、これらが本当にエラーである場合は、Err.Raise
を使用してマクロからエラーを発生させ、コンソールに詳細を書き込むTry Catch
ブロックを使用して.Netコードでエラーを処理します。
VBAから呼び出してアプリケーションのコンソールに書き込むことができるCOMコンポーネントをVB.NETアプリに作成できます。