Windowsプログラムからアイコンを抽出する方法を探していたら、
次の方法を見つけました。が、私はVB開発環境を持っていません。
Excel2010-VBAで同じことをしたいのですがコンパイルエラーが発生…当然だと思います。
Excel2010-VBAで動作させるには次のコードをどのように変更すればよいか、
ご教授宜しくお願い致します。
文書番号: 185883
Windows プログラムからアイコンを抽出するには
[http://support.microsoft.com/kb/185883/ja]
Option Explicit
Private Const MAX_PATH = 260
Private Declare Function GetSystemDirectory Lib "kernel32" Alias _
"GetSystemDirectoryA" (ByVal lpBuffer As String, _
ByVal nSize As Long) As Long
Private Declare Function ExtractIcon Lib "shell32.dll" Alias _
"ExtractIconA" (ByVal hInst As Long, _
ByVal lpszExeFileName As String, _
ByVal nIconIndex As Long) As Long
Private Declare Function DrawIcon Lib "user32" (ByVal hdc As Long, _
ByVal x As Long, ByVal y As Long, ByVal hIcon As Long) As Long
Dim path$, nIcon As Long
Private Sub Command1_Click()
Dim hIcon As Long
hIcon = ExtractIcon(App.Hinstance, path$, nIcon)
Set Picture1.Picture = LoadPicture("") ' Clear the picture box
Picture1.AutoRedraw = True
Call DrawIcon(Picture1.hdc, 0, 0, hIcon)
Picture1.AutoRedraw = False
Picture1.Refresh
nIcon = nIcon + 1
End Sub
Private Sub Form_Load()
' Store the full path to the file containing the icon(s).
path$ = Space$(MAX_PATH)
Call GetSystemDirectory(path$, MAX_PATH)
path$ = Trim$(path$) ' Trim trailing blanks & Null terminator
path$ = Left$(path$, Len(path$) - 1) & "\Shell32.dll"
nIcon = 0
End Sub
以上