Merhaba arkadaşlar,
Aşağıdaki makro ile excel içinden farklı dosyaları kendi programları ile açabiliyorduk. Fakat bilgisayara xp ve excel 2003 yükledikten sonra bu kod çalışmamaya başladı. Acaba bu API'ler mi tanınmıyor yoksa xl2003 içinden herhangi bir dosya açmak için daha farklı bir prosedür mü uygulanıyor?
Declare Function FindExecutable Lib "shell32.dll" Alias _
"FindExecutableA" (ByVal lpFile As String, _
ByVal lpDirectory As String, ByVal lpResult As String) As Long
Declare Function FindWindow Lib "user32" Alias "FindWindowA" ( _
ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" ( _
ByVal hWnd As Long, ByVal lpOperation As String, _
ByVal lpFile As String, ByVal lpParameters As String, _
ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
Sub OpenAnyFile()
Dim RetVal As Integer
Dim Buff As String
Dim hWnd As Long
Dim MyFile As Variant
MyFile = "C:\Documents and Settings\admin\Belgelerim\Alarmlar\Alarms.mdb"
If Dir(MyFile) = "" Then
MsgBox MyFile & " dosyası bulunamadı."
Exit Sub
End If
Buff = String(260, 32)
RetVal = FindExecutable(MyFile, vbNullString, Buff)
If RetVal > 32 Then
If Application.Version < 9 Then
hWnd = FindWindow("ThunderXFrame", "")
Else
hWnd = FindWindow("ThunderDFrame", "")
End If
ShellExecute hWnd, "Open", MyFile, vbNullString, "C:\", 1
Else
MsgBox Dir(MyFile) & " dosyası ile ilişkili bir program bulunamadı!", vbExclamation
End If
End Sub
Aşağıdaki makro ile excel içinden farklı dosyaları kendi programları ile açabiliyorduk. Fakat bilgisayara xp ve excel 2003 yükledikten sonra bu kod çalışmamaya başladı. Acaba bu API'ler mi tanınmıyor yoksa xl2003 içinden herhangi bir dosya açmak için daha farklı bir prosedür mü uygulanıyor?
Declare Function FindExecutable Lib "shell32.dll" Alias _
"FindExecutableA" (ByVal lpFile As String, _
ByVal lpDirectory As String, ByVal lpResult As String) As Long
Declare Function FindWindow Lib "user32" Alias "FindWindowA" ( _
ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" ( _
ByVal hWnd As Long, ByVal lpOperation As String, _
ByVal lpFile As String, ByVal lpParameters As String, _
ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
Sub OpenAnyFile()
Dim RetVal As Integer
Dim Buff As String
Dim hWnd As Long
Dim MyFile As Variant
MyFile = "C:\Documents and Settings\admin\Belgelerim\Alarmlar\Alarms.mdb"
If Dir(MyFile) = "" Then
MsgBox MyFile & " dosyası bulunamadı."
Exit Sub
End If
Buff = String(260, 32)
RetVal = FindExecutable(MyFile, vbNullString, Buff)
If RetVal > 32 Then
If Application.Version < 9 Then
hWnd = FindWindow("ThunderXFrame", "")
Else
hWnd = FindWindow("ThunderDFrame", "")
End If
ShellExecute hWnd, "Open", MyFile, vbNullString, "C:\", 1
Else
MsgBox Dir(MyFile) & " dosyası ile ilişkili bir program bulunamadı!", vbExclamation
End If
End Sub