• 締切済み

vbaの参照とtlb

某社のFXトレーディング用api(dll)を使って為替トレーディングをしています。 vbaからの自動発注ですがxpの時は動いたのですが、server 2003にすると「該当のdllが見つからない」とエラーが出てエクセルが落ちてしまいます。 vbaの参照設定はxpの時と同じtlbファイルのパスになっています。 tlbファイルの中身はわかりませんが、レジストリに正しくパスが登録されていないか、server 2003固有の問題かいずれかと考えています。 どなたか心あたりのある方ご教示いただけるとありがたいです。 某社のテクニカルサポートに聞いてはいますがapiについてのサポートは限定的と思われ、回答はあっても来週以降になると思っています。 よろしくお願いします。

みんなの回答

  • yorozu_ya
  • ベストアンサー率54% (76/140)
回答No.1

> レジストリに正しくパスが登録されていないか レジストリにどうやって登録したのですか?

qlmaster
質問者

補足

某社のアプリをダウンロードしてインストールする際にアプリとは別に「apiをダウンロードします」とメッセージが出てProgram Filesの中にフォルダが出来て中にapiとtlbファイルがコピーされる仕組みなので、その際にレジストリに登録していると思います。 レジストリを見てみましたがアプリとapi関連のキーがRootに作成されていました。 ただ、数も多くいじるのは危険なのでまだ触っていません。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 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参照可能にする」にはチェックを入れています。 おわかりの方がいらっしゃいましたら、どうぞよろしくお願いいたします。

  • Access2003 VBA でフォルダ参照ダイアログについて

    Access2003 VBA でフォルダ参照ダイアログを開いて、ダイアログで選択されたパスを元画面に渡すっていう処理がありますが、フォルダ参照ダイアログを開くため(ファイル参照ダイアログではない)、どうすればいいでしょうか。簡単なソースがあればぜひ教えてください。 ※インタネットで調べ、SHBrowseForFolderというAPIを使う資料がありますけど、結構複雑な使い方なのでもっと簡単な方法(ActiveX??)を教えてもらいたいのです。

  • エクセルVBA実行時のエラー:DLLファイルが見つ

    タイトル:エクセルVBA実行時のエラー:DLLファイルが見つかりません  質問させていただきます。どうぞよろしくお願いいたします。 環境:PC1~3の全てが、Excel2010、Win7になります。 初めてVBAから読み込むためのDLLファイルを作成いたしました。    PC1上で動作確認できている2つのファイル(Test4.dll(VC++2013にて作成)と それを呼び出すVBAのついたエクセルファイル)を、 PC2とPC3に移動し、VBAを実行しましたところ 何故かPC3でのみ下記エラーが発生いたします。 >実行時エラー'53' >ファイルが見つかりません。Test4.dll ・2つのファイルは同じフォルダ内で実行しております。 ・VBAのカレントパスは   ChDrive Left(ThisWorkbook.Path, 1)   ChDir ThisWorkbook.Path で変更しております。  試しにC:\Windows\System32と C:\Windows\SysWow64にも Test4.dllをコピペしてみましたが、同じエラーが出てまいります。 ・PC3のみ違うところを探してみましたが、思いつくのは下記くらいでございます。   1.VSが入っておりませんでした。(必要なのでしょうか??)   2.実行しているパスが違います。     PC1とPC2の実行パス:      D:\Users\Administrator\Documents\VBA_TEST     PC3の実行パス:      D:\Documents\VBA_TEST              もし何か原因として思いつかれる事がございましたらお教えいただけないでしょうか。 お詳しい方がいらっしゃいましたら何卒よろしくお願いいたします。

  • EXCEL VBAで自作DLLを呼び出すには?

    EXCEL VBAで自作DLLを呼び出すことをしています。一応うまくいったのですが、他人のPCで実行すると、「DLLがみつかりません」というエラーになってしまいます。DLLは、C:\Windows\system32 に入れてもだめです。また、c:\Program Files\xxx\yyy.dll にDLLをおき、EXCEL VBAで、Declare Function zzz Lib "c:\Program Files\xxx\yyy.dll" Alias _zzz@8" ( ...) As Long と 絶対パスでDLLを指定してもだめです。自分のPCは、Windows XP SP2です。他人のPCもXPですが、幾分新しいXPのようです。VISTAでもうまくいきません。 これはいったいなぜでしょうか?新しいOSではセキュリティを堅牢にしたたまに、DLLの呼び出しを制限しているのでしょうか? どうやったらDLLを呼び出せるか、教えていただけないでしょうか? よろしくお願いいたします。

  • VBAでDLLが見つからないエラー

    CADのVBA(6.0)ですが、DLLが見つからないエラーが出ます ' こっちはエラーが出ない Public Declare Function SearchVBApath Lib _ "C:\Program Files\AppliTool\VB\DDDD.dll" (ByVal env As String, ByVal s As String) As Integer 'こっちだとエラーが出る Public Declare Function SearchVBApath Lib "DDDD.dll" (ByVal env As String, ByVal s As String)    As Integer VBAプロジェクトファイルとDLLは同じフォルダにおいてあります 上記のようにフルパスだとエラーが出ないのですがDLL名だけだとこの関数のところでエラーがでます このDLL関数宣言行の前の方には他のDLL関数も同じようにパス省略で記述しているのですがそちらにはエラーが出ません どなたかヒント下さい、よろしくお願いします。

  • C++のDLLが見つからないVBAから見つからない

    こんにちは。質問させてください。 Visual C++ 2008 Express Editionで自作DLLを作成しました。 このDLLが、開発環境(WindowsXP、Excel2002)の Excelマクロで呼び出したところ、うまく動いたのですが、 WindowsVista、Excel2007のPCで同じマクロを実行すると 実行時エラー '53' ファイルが見つかりません [ファイル名] というエラーが出て実行できません。 どちらの環境でもDLLファイルはフルパスで指定していて ファイルはちゃんと存在しています。 原因が、Vistaなのか、Excel2007なのか またはその他の要因なのか、わからずに悩んでいます。 どなたか心当たりがある方がいらっしゃいましたらご教授願います。 よろしくお願いします。 その他詳細 ・DLLはdefファイルを使ってEXPORTしました。 ・Vistaのユーザーアカウント制限をoffにしてます。 ・Declear部分のソースコードは Declare Sub Prepare Lib "C:\test\API_test.dll" (ByVal FileName As String)です。

  • vba ローカルのプログラム呼び出し

    共有フォルダにある共有エクセルファイル(マクロ入)から そのファイルを使用しているPCにはいっているプログラムを起動させたいです。 使用者たちのパスはほぼ共通ですが、パスの一部に使用者のユーザ名が入っていて そこは使用している人に合わせて変えなければなりません。 どうするのが一番簡単でしょうか。 とりあえずユーザを取って、そのほかの共通のパスをくっつけて 絶対パスで指定しようと思っているのですが この案でいいのでしょうか? vbaで以下を実行すると、 ファイルを実行しているユーザ名がとれるのか、ファイルがおいてあるPCのユーザ名を取るのか、わかりません。(テストしたいのですが、現在サーバーがなくできません) Set objNetWork = CreateObject("WScript.Network") 'ユーザ名 Debug.Print "UserName = " & objNetWork.UserName ご存知の方、教えて下さい。

  • vc++ dll excel vba

    c++で作成したdllをexcel(vba)で使用する時エラー発生 >>>vs2005 vc++で作成したプロジェクト(プロジェクトはWindowフォームアプリケーションでフォームを使ってあるdllファイルからデータを読み出しポップアップ形でデータを表示する)をdllにした後、作られたdllをexcelに連結し読み出しボタンを押すとdllが実行されるようになっています。 問題はvisual studioがインストールされているパソコンではうまくいくのですが、vsがインストールされてないパソコンで実行すると "実行エラー'53':" "ファイルが見つかりません:xxxxx.dll" が表示され終了されてしまいます。 >>excelのvbaは "Private Declare Function test_func Lib "xyxyxy.dll" Alias "#1" (ByVal test As Integer) As Integer" >>c++のdll作成のほうは "[STAThreadAttribute] __declspec(dllexport) char __stdcall test_f(int dialog_no)" になってます。 ちなみにお客さんのパソコンを使ってテストしているためpath登録や参照登録などができません。 何でも良いのでコメント書いていただければと思います。 大雑把な質問で申し訳ないですが、宜しくお願いいたします。

  • 読み込んだDLLからの相対パス

    ASPで[Server.CreateObject("Common")]としてCommon.dllを読み込む(?!)だのですか、このCommon.dll中でiniファイルから情報を取得しようと考えているのですか、CurDir()を用いると予想外のパスが返されてきました。 どうすればこのdllがあるパスを取得できるのでしょうか? よろしくお願いします。

  • VBもしくは、VBAでのメモ帳の起動

    こんにちは。 VBもしくはVBAというプログラミングでメモ帳を開きたいのですが、WORD等のようにマクロの記録やVBAがありません。 行いたいことは、特定のフォルダーに入っている複数の既存のメモ帳を、OUTLOOKに入れたいのですが、VBAのサイトを探してもOUTLOOKのVBAというのがあまりありません。 WORDのマクロでWORDに貼り付けるのでも良いのですが、既存の複数のメモ帳を開いて、WORDなどには入れられないでしょうか? 自分で試行錯誤した限りでは、メモ帳単体のパスを指定すれば出来たのですが、EXCELのbook1、book2のように不特定のファイルを順番に開きたいと思っています。 使っているのは、WINDOWS XPとOFFICE XPです。 どなたか、お知恵を貸してください。 よろしくお願いします。 aki

このQ&Aのポイント
  • 明日は春のG1シリーズ最終戦、宝塚記念です。天気次第で予想が大きく変わりそうですが、優勝候補として注目されているのはクロノジェネシス、アリストレテス、レイパパレ、星モズベッロの4頭です。
  • クロノジェネシスは牡馬を含めて現役最強とされ、連覇も可能性があります。アリストレテスは良馬場条件を得意とし、ステイヤーではないため注目されています。レイパパレは距離に持ち味があり、圧勝も期待されます。星モズベッロは馬場が緩むと最高の走りを見せることができ、昨年は3着に入る活躍をしました。
  • また、注目の牝馬3強であるミスマンマミーアは同斤戦となるため厳しい戦いが予想されます。そして、58kgのユニコーンライオンも同じく不利な条件での勝利は難しいでしょう。明日のレースでは天気にも注意が必要ですが、多くの競馬ファンが注目する一戦となりそうです。
回答を見る