• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

Ofis 2013 - 2016 da çalışmayan VBA kodları

Katılım
4 Nisan 2011
Mesajlar
45
Excel Vers. ve Dili
Ofis 2007
Uzun zamandır kullandığım dosyayı yeni Excel 64 bit versiyonuna aktarmak istiyorum. Aşadığaki uyumsuz kodların Ofis 2016 da çalışanlarını yazabilir misiniz?

Teşekkürler..

Kod:
Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long) As Long
Private Declare Function ShowWindow Lib "user32" (ByVal hWnd As Long, ByVal nCmdShow As Long) As Long
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Declare Function SetFocus Lib "user32" (ByVal hWnd As Long) As Long
Private Declare Function DrawMenuBar Lib "user32" (ByVal hWnd As Long) As Long 'Başlıksız Form için
 
Son düzenleme:
ptrsafe diye forumda ve nette aratınız. Örnekleri bulabilirsiniz.

.
 
Kodları değiştirdim.
Kod:
Private Sub UserForm_Activate()
    Dim lngHwnd As Long
    Dim lngCurrentStyle As Long, lngNewStyle As Long

    If Val(Application.Version) < 9 Then
        lngHwnd = FindWindow("ThunderXFrame", Me.Caption)  'XL97
    Else
        lngHwnd = FindWindow("ThunderDFrame", Me.Caption)  'XL2000, XP, 2003?
    End If

    'Set the Windows style so that the userform has a minimise and maximise button
    lngCurrentStyle = GetWindowLong(lngHwnd, GWL_STYLE)
    lngNewStyle = lngCurrentStyle Or WS_MINIMIZEBOX Or WS_MAXIMIZEBOX
    lngNewStyle = lngNewStyle And Not WS_VISIBLE And Not WS_POPUP
    SetWindowLong lngHwnd, GWL_STYLE, lngNewStyle


    'Set the extended style to provide a taskbar icon
    lngCurrentStyle = GetWindowLong(lngHwnd, GWL_EXSTYLE)
    lngNewStyle = lngCurrentStyle Or WS_EX_APPWINDOW
    SetWindowLong lngHwnd, GWL_EXSTYLE, lngNewStyle
    ShowWindow lngHwnd, SW_SHOW
        
End Sub

UserForm_Activate de FindWindow hata veriyor.

Teşekkürler..
 
Son düzenleme:
. . .

Şu şekilde deneyiniz mi.
Private Declare Ptrsafe Function ...

. . .
 
Herşey için teşekkürler. Sadecene bahsettiğim FindWindow hatası veriyor. Kodları silersem çalışıyor.

Teşekkürler..
 
Açılışta kırmızı renki "Compile error" veren 6 adet "Private Declare Function" PtrSafe ve LongPtr ile düzeldi. Şimdi açılışta sarı renki "Compile error - Type mismath" uyarısı veriyor.

Kod:
Private Sub UserForm_Activate()
    Dim lngHwnd As Long
    Dim lngCurrentStyle As Long, lngNewStyle As Long

    If Val(Application.Version) < 9 Then
        lngHwnd = FindWindow("ThunderXFrame", Me.Caption)  'XL97
    Else
        lngHwnd = FindWindow("ThunderDFrame", Me.Caption)  'XL2000, XP, 2003?
    End If

    'Set the Windows style so that the userform has a minimise and maximise button
    lngCurrentStyle = GetWindowLong(lngHwnd, GWL_STYLE)
    lngNewStyle = lngCurrentStyle Or WS_MINIMIZEBOX Or WS_MAXIMIZEBOX
    lngNewStyle = lngNewStyle And Not WS_VISIBLE And Not WS_POPUP
    SetWindowLong lngHwnd, GWL_STYLE, lngNewStyle


    'Set the extended style to provide a taskbar icon
    lngCurrentStyle = GetWindowLong(lngHwnd, GWL_EXSTYLE)
    lngNewStyle = lngCurrentStyle Or WS_EX_APPWINDOW
    SetWindowLong lngHwnd, GWL_EXSTYLE, lngNewStyle
    ShowWindow lngHwnd, SW_SHOW
End Sub

kodlarından FindWindow seçili olarak geliyor.

Reşekkürler..
 
Geri
Üst