• ベストアンサー
  • 困ってます

VBAで呼び出したVBのDLLのデバッグ方法

VB2010で、COM相互運用機能を使って作成したDLLを VBAから呼び出すことはできるのですが この状態でこのDLLをデバッグすることはできないでしょうか。 本来ならば、DLLをデバッグするテストプログラムを VB2010のVB.NETのWindowsフォームアプリケーションか ConsoleApplication1で作成して、 同じソリューションの中に DLLとテストプログラムのプロジェクトを配置して 参照の追加でDLLを参照設定して 両者をデバッグをすると思われますが、 テストプログラムを作るのがかなり大変なのと、 今回作成したDLLは、元々はVBAの中のひとつのプロシージャ―で、 事情があって、このプロシージャ―だけをVBのDLLにしたものです。 このプロシージャ―は元々はVBAの中で正しく動作していたものです。 VBに書き直した時に何らかの不具合が起きていると思われます。 テストプログラムを作らずに、既存のVBAから呼び出して、 DLLの部分の動作だけを(できればVB2010で)デバッグできないでしょうか。 よろしくお願いします。 (WindowsXP SP3 , Excel2003のVBA , Visual Studio 2010)

共感・応援の気持ちを伝えよう!

  • 回答数1
  • 閲覧数2700
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
  • 回答No.1
  • naktak
  • ベストアンサー率36% (784/2138)

1.VB2010の方で、プロジェクトのプロパティ→デバッグ→外部プログラムの開始   を選んで、該当するExcelやWordのEXEを指定 2.VB2010からデバッグ実行 3.起動したExcelやらWordやらで対象のファイルを開いてマクロを実行 で出来ます。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

教えていただきました方法でデバッグすることができました。 このような方法があるとは知りませんでしたので 貴重な時間を節約することができました。 ありがとうございました。

関連するQ&A

  • VBがデバッグ時落ちてしまう

    VC6.0でDLLを作成し、VB6.0で呼び出すプログラムを作成しています。 DLLの内容はWindowハンドルを引数にしてそのハンドルを持つWindow上にListboxを作成するというようなものです。(もともとC言語用のDLLだったものをVBで使いまわしています) このプログラムをデバッグ実行し、デバッガ上で停止[実行->終了]とすると、VB6.exeがアプリケーションエラーで落ちてしまいます。(DLLの関数を呼ばない限り大丈夫です) デバッグ実行でも普通に終了(アプリケーションでの終了)であれば正常に終了してくれます。 このままですと、実行時エラーで止まる度にVB6.exeが落ちてしまい非常に不便です。 このような現象で困った方いませんか? 解決策がありましたら教えてください。

  • VC++のDLLファイルをVBで読み出せません。

    お世話になります。 プログラムをやり始めて3か月の初心者です。仕事で以下のような事をしていますが、うまくいかず悩んでいます。 プログラム(1):VB 2008年版 メインプログラム プログラム(2):C言語 2006年版 プログラム(3):VC++ VISUAL STUDIO2012 EXPRESSを使用 ■今のプログラム (2)のdllファイルを(1)で呼び出しています。問題なく動きます。 ■やりたい事 (2)のプログラム内容を変更したのが(3)です。そのdllファイルを(1)で呼び出したいです。 ⇒しかし、(3)のdllファイルを読み込むことができません。((3)のdllファイルは作れました。) (3)はVC単独では正しく動作します。 (1)のプログラムに、(2)を呼び出すときと同じように(3)用のプログラムを追加しました。作った(3)のdllファイルは指定したフォルダにきちんと入れています。 コンピューターに詳しい先輩が時間をかけてみてくれたのですが、結局わからずじまいでした。 ■質問 VBの型が古い、EXPRESSを使っているからできないのでしょうか? VCでdllを作って、VBで呼び出すまでの流れをわかりやすく紹介した書籍やWEBなどあればご教示頂けませんでしょうか? よろしくお願いいたします。

  • VB 2008 DLL作成の方法

    当方Visual Studio 2008のVB、C++で開発をしています。 VS2008のVBでクラスライブラリとして作成し、ビルドをしてDLLを作成したのですが、 対となるLIBファイルがどこにも見当たりませんでした。 VS6.0のVBではLIBファイルも作成されました。 VS2008のVBでLIBファイルを作成する方法をご存知の方いらっしゃいましたら教えてください。 LIBファイルを使用する理由は、VBで作成したDLLをC++に組み込むときにリンクさせる為です。 ※今回はLoadLibrary関数を使わず、LIBファイルを使おうと考えています 以上、宜しくお願い致します。

  • VBから参照できないCのDLLを使用する方法

    Cで作成されたDLLがあるのですが、VBから参照設定しても「指定されたファイルへの参照は登録できません。」と怒られます。 そのようなDLLをどうしてもVBから使用したい場合はどうすれば良いでしょうか? 直接は無理だとしても、間に何かをかましてできると思うのですが、良い方法があれば教えてください。 ちなみに VB6 です。 よろしくお願いします。

  • VBAをDLL化する方法を教えてください。

    Excelの中で、UserFormを使用し、グラフを操作するプログラムをVBAで作成しています。 そこで、VBAのソースを見られないようにするために、全てDLL化してだれにでも配信できるようにしたいと考えていますが、どのようにすれば、DLLにできるのかわかりません。 VBAのパスワードだけでは弱いので、DLL化する方法がありましたら、どなたかその方法をご教授願います。

  • VBAからVB.NET 又は VB2005へ移行

    VBAからVB.NET 又は VB2005へ移行を考えているいるのですが、どちらに移行しようか悩んでいます。プログラムはVBAしか接した事がないのですが、どちらの方がスムーズに移行が可能か教えてください。

  • Visual Studio .NET C# でDLLを作成し、VB.N

    Visual Studio .NET C# でDLLを作成し、VB.NETで呼び出す初心者向けのサンプルについて  現在、Visusal Studio .NET C#でDLLを作成して、それを、VisualBasic.NETのWindowsアプリケーションで呼び出す簡単なプログラムを作成したいと思っているのですが、書籍をあたってもなかなか参考になる書籍がみつけられなく、サンプルのサイト又は、自分でそのようなプログラムを作成している人にぜひご教授願いたく、質問させていただきました。当方、初心者ですので、何卒宜しくお願いいたします。

  • VB2010で作成したdllからtlbが作れない

    VB.NETで作成したDLLをExcelのVBAから呼び出すということをやっています。 VB2007のときはよかったのですが、VB2010にしてからうまくいかなくなりました。 具体的には、コンパイルしてClassLibrary1.dllファイルを作成してから C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\RegAsm.exe ClassLibrary1.dll /tlb:ClassLibrary1.tlb /codebase を実行すると、 ClassLibrary1.dllは有効な.NETアセンブリではないため、読み込めませんでした。 となります。 ClassLibrary1の「アセンブリをCOM参照可能にする」にはチェックを入れています。 おわかりの方がいらっしゃいましたら、どうぞよろしくお願いいたします。

  • VC++で作成したDLLのデバッグ

    VC++6.0で作成したDLLファイルのデバッグ作業でVBでコンパイルした EXEファイルを使うと、例外エラーが発生してしまいます。 EXEファイルにデバッグ情報が書き込まれるのでしょうか? 次からそのEXEファイルを利用すると、やはり例外エラーがおきます。 (それに長い間気づかず、ずっとバグ探しをしてました。) VC++のDLLファイルのデバッグモードはVBのEXEファイルでは利用できないのでしょうか?

  • デバッグできない

    Microsoft Visual Studio 2005を使用して、 プログラムを作成しているのですがデバッグしようとしても アイコンが選択できません。どうしたらいいのでしょうか??