Page 37 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 通常モードに戻る ┃ INDEX ┃ ≪前へ │ 次へ≫ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ▼VBAでのAPI使用準備 中山 知久 02/9/18(水) 21:41 ┗Re:VBAでのAPI使用準備 こうちゃん 02/9/19(木) 8:56 ┗Re:VBAでのAPI使用準備 中山 知久 02/9/20(金) 14:17 ─────────────────────────────────────── ■題名 : VBAでのAPI使用準備 ■名前 : 中山 知久 <fwit7902@mb.infoweb.ne.jp> ■日付 : 02/9/18(水) 21:41 -------------------------------------------------------------------------
はじめまして、中山です。 標記の件につきまして、質問があります。 VBAでAPIを使いたいと考えています。 以前、DAOを設定した際に、メニューの「参照設定」で、 ライブラリを指定しました。 今回も、同じような設定が必要なのでしょうか? 必要であれば、何を設定すれば良いでしょうか? 初歩的な質問で申し訳ございません。 どなたか助けていただけないでしょうか? |
中山 知久 さん、こんにちは >VBAでAPIを使いたいと考えています。 >以前、DAOを設定した際に、メニューの「参照設定」で、 >ライブラリを指定しました。 >今回も、同じような設定が必要なのでしょうか? >必要であれば、何を設定すれば良いでしょうか? 大筋で「APIを使用する=外部DLLを使用する」と考えていいと思います。 で、標準モジュールで、そのDLLへの参照を宣言します。 (DLLとはOSカーネルを含みます。) Declare ステートメント HELPの抜粋 --------------------------------------------- ダイナミック リンク ライブラリ (DLL) の外部プロシージャへの参照を宣言します。モジュール レベルで使います。 --------------------------------------------- たとえばウィンドウズのバージョンをAPIで取得するとします。 'Windowsカーネルの参照宣言 Declare Function GetVersionEx Lib "kernel32" Alias "GetVersionExA" (lpVersionInformation As OSVERSIONINFO) As Long 'OSのバージョン取得用構造体 Type OSVERSIONINFO dwOSVersionInfoSize As Long '構造体のバイト数 dwMajorVersion As Long 'メジャーバージョン番号(Windows98/95とも &H4) dwMinorVersion As Long 'マイナーバージョン番号(Windows95 = &H0 Windows98 = &HA) dwBuildNumber As Long 'ビルド番号 dwPlatformId As Long 'プラットフォームのID定数 szCSDVersion As String * 128 'OSに関する付加情報文字列 End Type 'OSのメジャーバージョンを返す関数。 Public Function GetWinPlatform() As String Dim rc As Long, lpVersionInformation As OSVERSIONINFO, v(3) As String lpVersionInformation.dwOSVersionInfoSize = Len(lpVersionInformation) rc = GetVersionEx(lpVersionInformation) With lpVersionInformation v(0) = Hex$(.dwMajorVersion) 'メジャーバージョン番号 v(1) = Hex$(.dwMinorVersion) 'マイナーバージョン番号 v(2) = Hex$(.dwBuildNumber) 'ビルド番号 v(3) = Hex$(.dwPlatformId) 'プラットフォームのIDを示す定数 End With Select Case v(3) Case 2 If v(0) = "4" Then GetWinPlatform = "NT" Else If v(1) = "0" Then GetWinPlatform = "2000" Else GetWinPlatform = "XP" End If End If Case 1 If v(0) = "4" And v(1) > "1" Then GetWinPlatform = "98" Else GetWinPlatform = "95" End If Case Else GetWinPlatform = "??" End Select End Function 関数を呼び出してOSのバージョン表示 Sub test() MsgBox GetWinPlatform End Sub こんな感じでしょうか・・・・ #あんまり詳しくないんで、突っ込んできかないでね^^; |
中山です お答え頂きましてありがとうございました 初心者の私には、少々難しいことが分かりましたので、 書籍を購入し、連休中に、基礎からミッチリ叩きこもうと思います。 ありがとうございました。 |