過去ログ

                                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を設定した際に、メニューの「参照設定」で、
ライブラリを指定しました。
今回も、同じような設定が必要なのでしょうか?
必要であれば、何を設定すれば良いでしょうか?

初歩的な質問で申し訳ございません。
どなたか助けていただけないでしょうか?

 ───────────────────────────────────────  ■題名 : Re:VBAでのAPI使用準備  ■名前 : こうちゃん <nakajima19@hotmail.com>  ■日付 : 02/9/19(木) 8:56  -------------------------------------------------------------------------
   中山 知久 さん、こんにちは

>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

こんな感じでしょうか・・・・

#あんまり詳しくないんで、突っ込んできかないでね^^;

 ───────────────────────────────────────  ■題名 : Re:VBAでのAPI使用準備  ■名前 : 中山 知久 <fwit7902@mb.infoweb.ne.jp>  ■日付 : 02/9/20(金) 14:17  -------------------------------------------------------------------------
   中山です

お答え頂きましてありがとうございました
初心者の私には、少々難しいことが分かりましたので、
書籍を購入し、連休中に、基礎からミッチリ叩きこもうと思います。
ありがとうございました。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━    通常モードに戻る  ┃  INDEX  ┃  ≪前へ  │  次へ≫    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━                                 Page 37