• ベストアンサー

VBAのレジストリについて、教えて下さい。

あるアプリケーションソフトのレジストリ情報を VBA(Excel97 に付いてきた)にてGETしたいので"GetSetting関数"を使用すると [HKEY_USERS]-[Default]-[Software]-[VB and VBA Program Settings] の下の情報しかGET出来ません。 欲しい情報は、例えば [HKEY_USERS]-[Default]-[Software]-[ODBC]-[ODBC.INI]-[Excel Files] の Driverの値です。 やはりDLLを作成するしか無いのでしょうか?? 誰か教えて下さい。出来れば、簡単ならコマンドを記載orHPの紹介でも良いです。ヒントだけでも、本の紹介でも構いません。アドバイス下さい。 お願い致します。

  • chau
  • お礼率40% (30/75)

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

  • ベストアンサー
  • yochi
  • ベストアンサー率25% (17/66)
回答No.2

GETしたい情報は 文字列?バイナリ?DWORD値?とりあえず、 文字列と想定して(勝手に)↓ Private Declare Function RegCloseKey Lib "ADVAPI32" (ByVal hKey As Long) As Long Private Declare Function RegOpenKeyEx Lib "ADVAPI32" Alias "RegOpenKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal ulOptions As Long, ByVal samDesired As Long, phkResult As Long) As Long Private Declare Function RegQueryValueExstr Lib "ADVAPI32" Alias "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, ByVal lpType As Long, ByVal lpDat As String, lpcbData As Long) As Long Const HKEY_USERS = &H80000003 Const ERROR_SUCCESS = 0& '++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Sub Samp() Dim A As String Dim B As Long Dim Name As String Dim Rootkey As String Dim Subkey As String Dim C As Long Dim D As Integer Rootkey = HKEY_USERS Subkey = ".Default\Software\ODBC\ODBC.INI\Excel Files" Ret = RegOpenKeyEx(Rootkey, Subkey, 0, 1, C) Name = "Driver" A = String(250, Chr(0)) B = Len(A) D = RegQueryValueExstr(C, Name, 0, 0, A, B) If D = ERROR_SUCCESS Then MsgBox A Else MsgBox "NG" End If Call RegCloseKey(C) End Sub で、取得出来ると思いますが・・・ただしExcel2000のVBAで動作確認です。 趣旨が間違っていればごめんなさい m(_ _)m

chau
質問者

お礼

おりがとうございます。m(__)m Excel97のVBAでも動作いたしました。助かりました。本当に、ありがとうございました。

その他の回答 (1)

回答No.1

Win32APIのRegOpenKeyExやRegQueryValueExなどを使いましょう。 VBやVBAから使う場合は、DeclareでDLLの中の関数を宣言する必要があります。 APIビューアがあれば便利なんですが。 とりあえず、検索してみましょう。

関連するQ&A

  • VBAでPCのレジストリに情報を書き込みできません。レジストリエディタ

    VBAでPCのレジストリに情報を書き込みできません。レジストリエディタで調べてみたところ、HKEY_CURRENT_USER\Softwareに”VB and VBA Program Settings”がありませんでした。これはどうしてなのでしょうか?どうすれば、設定できるでしょうか?よろしくお願いします。

  • このレジストリは消しても大丈夫でしょうか??

    こちらでレジスターのログについてお聞きしてよいのか迷いましたが教えていただければ非常に助かります。  RegCleanerとCCleanerというソフトでレジストリのチェックをしました。  たくさん表示されたので一つ一つ調べてみたのですが、以下のものは消してよいのかどうかわかりません。 後半のLeaderTechのものについても調べてみたのですが、スタートアップの項目に入っている場合はスパイウェアー、、?みたいな情報を見つけたのですが、私の場合はスタートアップ項目には入っていません。 SpyBotとAd-AwareSEでのチェックにはなにも引っかかりませんでした。  ウィルスバスターでも大丈夫でした。 HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.avc] HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.avc\OpenWithList] HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.key] HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.key\OpenWithList] HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.LNG] HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.LNG\OpenWithList] HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\OpenWithList] HKEY_CURRENT_USER\Software\LeaderTech\Product Registration\Settings HKEY_CURRENT_USER\Software\LeaderTech\Product Registration HKEY_CURRENT_USER\Software\LeaderTech\PowerRegister\ADOB HKEY_CURRENT_USER\Software\LeaderTech\PowerRegister

  • レジストリのHKEY CURRENT USERについて

    ノートン アンチウイルス2003の削除がうまくいきません。 HKEY CURRENT USER\Software以下のSymantecを削除しても問題ないですか? HKEY_LOCAL_MACHINE\SOFTWARE\Symantecと HKEY_USERS\.DEFAULT\Software\Symantecは、レジストリには、ありません。 どなたか初心者に分かりやすく説明願います。

  • レジストリの値

    K-Warner と申します。よろしくお願いいたします。 訳あって、以下のレジストリのデフォルトの値(フォルダ名)を知りたいです。環境は、Windows Vista Home Premium SP1 です。 1.[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders]の"Personal" 2.[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders]の"Personal" 以上、よろしくお願いします。

  • 信頼済みサイトの追加(レジストリ)教えてください

    レジストリ機能を使って信頼済みサイトを追加したいのですが、先日 [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Ranges\Range*] "http"=dword:00000002 ":Range"="192.168.1.101" 上記の.regファイルを使って信頼済みサイトを追加しました。 本日上記のregファイルのアドレス部分だけをいじって [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Ranges\Range*] "http"=dword:00000002 ":Range"="192.168.5.101" で実行すると192.168.5.101は登録されたのですが、192.168.1.101が消えてしまいました。 レジストリエディタの画面でツリーを開いていったのですが、range*フォルダの中身が192.168.1.101か ら192.168.5.101に書き変わってたのが原因というのはわかったのですが、 2つのアドレスを信頼済みサイトに登録したい場合はどうすればいいのでしょうか? Ranges\Range*の*の部分を適当な文字列に変えたらいいのでしょうか? [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Ranges\Range*] "http"=dword:00000002 ":Range"="192.168.1.101" [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Ranges\Range-] "http"=dword:00000002 ":Range"="192.168.5.101" これで実行すれば2つ登録されたのですが、これであっているかわからないので・・・・・

  • スパイウェアの削除方法について・・・

    PCからたくさんのスパイウェアが検出され、 その大半は削除できたのですが、 以下のファイルは手動でないと削除できないようです。 その削除方法を教えてください。 DSO Exploit: Data source object exploit (レジストリ変更, nothing done) HKEY_USERS\S-1-5-18\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\0\1004!=W=3 DSO Exploit: Data source object exploit (レジストリ変更, nothing done) HKEY_USERS\S-1-5-21-2307437357-1763808397-3916703754-1003\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\0\1004!=W=3 DSO Exploit: Data source object exploit (レジストリ変更, nothing done) HKEY_USERS\S-1-5-20\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\0\1004!=W=3 DSO Exploit: Data source object exploit (レジストリ変更, nothing done) HKEY_USERS\S-1-5-19\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\0\1004!=W=3 DSO Exploit: Data source object exploit (レジストリ変更, nothing done) HKEY_USERS\.DEFAULT\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\0\1004!=W=3 CnsMin: ライブラリ (ファイル, nothing done) C:\WINDOWS\Downloaded Program Files\CnsMin.dll

  • レジストリについて…

    『次のレジストリ・キーを選択します。 HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\2 右側ペイン内で、次の値を削除します。 "2001" = "0x00000000" "2004" = "0x00000000"』 と有るのですが "2001" = "0x00000000" "2004" = "0x00000000"は レジストリエディタにて 名前2001  種類REG_DWORD データ0x00000000 名前2004 種類REG_DWORD データ0x00000000 これのことを指しているのでしょうか? よろしくお願いします。 

  • レジストリについて

    Windows98のOSに自動プロキシの設定をレジストリにて 配布しようとしているのですが、 REGEDIT4 [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings] "AutoConfigURL"="http://proxy.proxy.local/proxy.pac" とレジストリファイルを作り当てたのですが、 自動構成スクリプトを使用するの欄に アドレスは反映されるのですが、 チェックボックスの欄にチェックがつきません。 その後、チェックボックスの欄に関しての レジストリを探したのですが 見つかりません。 非常に困っています。 知っていらっしゃる方、教えてください。 よろしくお願い致します。

  • Spybotでスキャンした後に・・・

    既出でしたら申し訳ありません。 質問ですが、スキャン後に下記の様な結果が毎回出ます。 DSO Exploit: Data source object exploit (レジストリ変更, nothing done) HKEY_USERS\S-1-5-18\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\0\1004!=W=3 DSO Exploit: Data source object exploit (レジストリ変更, nothing done) HKEY_USERS\S-1-5-21-1337047737-2646722632-2268318136-1006\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\0\1004!=W=3 DSO Exploit: Data source object exploit (レジストリ変更, nothing done) HKEY_USERS\S-1-5-20\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\0\1004!=W=3 DSO Exploit: Data source object exploit (レジストリ変更, nothing done) HKEY_USERS\S-1-5-19\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\0\1004!=W=3 DSO Exploit: Data source object exploit (レジストリ変更, nothing done) HKEY_USERS\.DEFAULT\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\0\1004!=W=3 これは、削除しても良いのでしょうか? 初心者なので良く分かりません。 どなたか良いアドバイスをお願いします。

  • IEレジストリのSavedLegacySettingsの5バイト目って?

    ちょっと困っておりまして、久しぶりに質問させてもらいます。 レジストリの[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Connections]のSavedLegacySettingsの事なのですが5バイト目の値は何を表す値でしょうか? ググったり、過去ログも見てみましたがさっぱりです。詳細情報をご存知の方、あるいは情報がありそうな場所をご存知の方お願いします。 ちなみにOSはWindowsVista。IEは、IE7です。

専門家に質問してみよう