TOP > VBA基本講座 > [Win32APIをVBAで使う]

[sample29.xls] ShellAbout関数[バージョン情報ダイアログボックスを表示する]

<注意>以下は言語の使用方法の例として紹介するものです。内容及びその運用結果に関して一切の責任を負いません。

VCでの宣言
(C言語の関数で公開されている)
int ShellAbout(
       HWND   hWnd,
       LPCTSTR   szApp,
       LPCTSTR   szOthrStuff
       HICON    hIcon
       );

VBで使用できるように変換した宣言
(APIビューア(Win32api.txt)、書籍等で入手する)
Declare Function ShellAbout Lib "shell32.dll" _
Alias "ShellAboutA" _
(ByVal hwnd As Long, _
ByVal szApp As String, _
ByVal szOtherStuff As String, _
ByVal hIcon As Long) As Long

hwnd:親ウィンドウのハンドル(識別子)NULL可
szApp:タイトルバーとダイアログの最初の行に表示
szOtherStuff:著作権情報の後ろに表示
hIcon:アイコンを指定「NULL」でWinアイコン」

VB構文の書式
Declare Function
関数名 Lib "DLL名"
 Alias "関数の別名"
 (ByVal 引数 As type, 
 ByVal
引数 As type,
 ByVal 引数 As type,
 ByVal 引数 As type) As type

VB構文の説明
Declare:DLLへの参照を宣言します
Function:プロシージャが値を返す場合
Lib:目的のプロシージャを含むDLL
Alias:DLLの中で別の名前を持つことを示す
関数の別名:文字列を含む関数の場合、Win95は最終文字"A"を使う
ByVal:値渡しで渡す

 

マクロコードの例
Declare Function ShellAbout Lib "shell32.dll" _
Alias "ShellAboutA" _
(ByVal hwnd As Long, _
ByVal szApp As String, _
ByVal szOtherStuff As String, _
ByVal hIcon As Long) As Long

Sub バージョン情報表示()
  Dim  strTitle As String
  Dim strStuff As String
        strTitle = "sample29.xlsのバージョン情報 # " & _
    "ExcelVBAマクロ sample29.xls"
 '#で区切ると「#」以前がタイトルバー、
 '以降がダイアログの最初の行に表示される
 '「#」を使わない場合「のバージョン情報」文字はタイトルバーに自動表示
        strStuff = Application.Name & "バージョン " & _
        Application.Version & Chr(13) & Chr(13) & _
        "Bear Web "
 'エクセルのバージョン表示と
 '著作権情報の後ろに表示される文字
        ShellAbout 0, strTitle, strStuff, 0
 'ウィンドウハンドルとアイコンはNULL「0」
End Sub


TOP