ThisWorkbook.IsAddin, #If VBA6 Then vs şeklindekli kodların anlamları?

Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
Aşağıdaki kodların anlamı nedir?

Kod:
Private Sub Workbook_Open()
Dim strFontList As String
Dim blnCheckResp As Boolean

' ŠÖ”“\‚è•t‚¯ƒ_ƒCƒAƒƒO‚Å•\Ž¦‚³‚ê‚éƒRƒƒ“ƒg‚Ì“o˜^
    Call prvFunctionGuide
    
' ƒtƒHƒ“ƒgƒŠƒXƒg‚̎擾(ƒAƒhƒCƒ“/‘ÌŒ±ƒuƒbƒN—¼•û‚ŎÀs)
    If (ThisWorkbook.IsAddin = True) Then
        #If VBA6 Then
            'Excel2000ˆÈ~(API‚Ŏ擾‚·‚é‚̂ŃAƒhƒCƒ“‰ğœ‚Í•s—v)
            Call prvFontListGet("Init", 0, strFontList, blnCheckResp)
        #Else
            '—LŒø‚ȃV[ƒg‚ª–³‚¢‚ƤƒtƒHƒ“ƒgƒƒjƒ…[‚©‚ç‚̎擾‚ªo—ˆ‚È‚¢‚Ì‚Å
            'ˆêŽž“I‚É[IsAddin]‚ğ‰ğœ‚·‚é(Excel97)
            Application.ScreenUpdating = False
            ThisWorkbook.IsAddin = False
        
            Call prvFontListGet("Init", 0, strFontList, blnCheckResp)
        
            ThisWorkbook.IsAddin = True
            ThisWorkbook.Saved = True
            Application.ScreenUpdating = True
        #End If
    Else
        Call prvFontListGet("Init", 0, strFontList, blnCheckResp)
    End If

' Welcom ƒƒbƒZ[ƒW‚Ì•\Ž¦(‘ÌŒ±ƒuƒbƒN‚Ì‚İ)
'    If (Worksheets("Information").Range("L6").Value = True) Then
'        Call Trial01
'    End If
End Sub
 
Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
ThisWorkbook.IsAddin = True ne demekt,r?
#If VBA6 Then
saırındayer alan
# işareti kontrole hangi anlamı katmaktadır?

saygıarımla
 
Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
güncel yardımlarınız için teşekkür ederim
 
Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
ThisWorkbook.IsAddin = True ne demekt,r?
#If VBA6 Then
satırlarında yer alan
# işareti kontrole hangi anlamı katmaktadır?

güncel yardımlarınız için teşekkür ederim
 
Katılım
15 Haziran 2006
Mesajlar
3,704
Excel Vers. ve Dili
Excel 2003, 2007, 2010 (TR)
Merhabalar

Thisworkbook.IsAddin, çalışma kitabı yapısının addin (eklenti) olup olmadığını kontrol eder.

VBE'ye girdiğinizde, Thisworkbook'un Properties'inde IsAddin özelliğinin, default olarak False olduğunu görürsünüz.. Bunu; True olarak değiştirirseniz, sheet görüntüsünün kaybolduğunu görürsünüz.

Bu elle yaptığınız işlemin, kod karşılığı da, sizin bahsettiğiniz, Thisworkbook.IsAddin=True 'dur. False'a eşitlerseniz, dosya eklenti olmaktan çıkar, normal bir Excel Çalışma kitabı (xls) halini alır.

Diyez (Sharp, #) işareti ben daha önce hiç kullanmadım ve karşılaşmadım da ... Belki VB'nin daha alt versiyonlarında kullanılan ve şimdi çok kullanılmayan bir özellik olabilir.

Diyezleri kaldırdığınızda, prosedür aksamıyorsa, problem yok demektir.
 
Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
hocam ilginize teşekkür ederim yalnız tama olarak ne işe yaradığını hala anlamadım

eğer Eklentilerden xxx.xla yı işaretlemişsek dosyayı görmüyoruz bile ne fayda sağlıyor bu kontrol çözemedim.
 
Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
Merhabalar

Diyez (Sharp, #) işareti ben daha önce hiç kullanmadım ve karşılaşmadım da ... Belki VB'nin daha alt versiyonlarında kullanılan ve şimdi çok kullanılmayan bir özellik olabilir.

Diyezleri kaldırdığınızda, prosedür aksamıyorsa, problem yok demektir.
Compile Erro Hidden module Thisworkbook hatası veriyor hocam diezleri kaldırınca.
 
Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
kitapta #If Geçen diğer kodlar
Kod:
Public Static Sub prvFontListGet(ByVal Action As String, _
                                 ByVal Idx As Integer, _
                                 ByRef FontList As String, _
                                 ByRef CheckResp As Boolean)

Dim strFontList_Sort() As String
Dim i As Integer
Dim strWK As String
Dim ErrNum As Long

'-------ŠJ”­Žž‚u‚a‚d‚©‚ç‚ÌŽÀs‚ŤStatic•Ï”‚ª‰Šú‰»‚³‚ꂽê‡‚̑Ήž------
    ErrNum = 0
    If (Action <> "Init") Then
        On Error Resume Next
        i = UBound(strFontList_Sort)
        ErrNum = Err.Number
        On Error GoTo 0
    End If
    
    If (ErrNum <> 0) Or (Action = "Init") Then
        '&#142;g&#8212;p&#8240;&#194;&#8221;\&#8218;&#200;&#402;t&#402;H&#402;&#8220;&#402;g&#8218;&#287;&#142;&#230;&#8220;&#190;
        #If VBA6 Then
            Call prvGetFontList_API     'for Excel2000&#710;&#200;&#141;~
        Else
            Call prvGetFontList_Menu    'for Excel/Word(97)
        End If

        ReDim strFontList_Sort(UBound(strFontList))
        strWK = ""
        For i = 0 To UBound(strFontList)
            strWK = prvMinValueFromList(strFontList, strWK)
            strFontList_Sort(i) = strWK
        Next i
    End If
'-----------------------------------------------------

    Select Case Action
    Case "Init"
        '&#143;&#227;&#8218;&#197;&#142;&#192;&#141;s
    Case "List"
        If (Idx >= 0) And (Idx <= UBound(strFontList_Sort)) Then
            FontList = strFontList_Sort(Idx)
        Else
            FontList = ""
        End If
    Case "Check"
        CheckResp = False
        For i = 0 To UBound(strFontList_Sort)
            If (strFontList_Sort(i) = FontList) Then
                CheckResp = True
                Exit For
            End If
        Next i
        
    End Select
End Sub
Kod:
Private Sub prvGetFontList_API()
Dim lngDC As Long
Dim MyLogFont As LOGFONT
'AddressOf&#8240;&#8240;&#142;Z&#142;q&#8218;&#170;&#8218; &#8218;&#233;&#8218;&#204;&#8218;&#197;&#164;&#143;&#287;&#338;&#143;&#8226;t&#402;R&#402;&#8220;&#402;p&#402;C&#402;&#8249;&#8218;&#197;Excel2000&#710;&#200;&#141;~&#8218;&#204;&#8218;&#304;
#If VBA6 Then
    MyLogFont.lfCharSet = DEFAULT_CHARSET
    MyLogFont.lfPitchAndFamily = 0
    MyLogFont.lfFaceName(1) = 0
    ReDim strFontList(0)
    lngDC = GetDC(0)   '&#402;f&#402;o&#402;C&#402;X&#402;R&#402;&#8220;&#402;e&#402;L&#402;X&#402;g&#8218;&#287;&#142;&#230;&#8220;&#190;
    Call EnumFontFamiliesEx(lngDC, MyLogFont, _
                           AddressOf EnumFontFamExProc, 0, 0)
    Call ReleaseDC(0, lngDC)    '&#402;f&#402;o&#402;C&#402;X&#402;R&#402;&#8220;&#402;e&#402;L&#402;X&#402;g&#8218;&#287;&#8240;&#287;&#8226;&#250;
    ReDim Preserve strFontList(UBound(strFontList) - 1) '&#8211;&#8211;&#8221;&#246;&#8218;&#204;&#8249;&#243;&#8212;v&#8216;f&#8218;&#287;&#141;&#237;&#143;&#339;
#End If
End Sub
ve hepsi #If VBA6 Then ile ba&#351;l&#305;yor.
 
Katılım
15 Haziran 2006
Mesajlar
3,704
Excel Vers. ve Dili
Excel 2003, 2007, 2010 (TR)
O zaman , daha anla&#351;&#305;l&#305;r olmas&#305; i&#231;in, yukar&#305;da verdi&#287;iniz &#246;rnek kodlardan gidelim.

Bu kitap a&#231;&#305;ld&#305;&#287;&#305; zaman, a&#351;a&#287;&#305;daki olaylar ger&#231;ekle&#351;ir. (&#199;ok sa&#287;lamc&#305; bir kod oldu&#287;u s&#246;ylenebilir)

If (ThisWorkbook.IsAddin = True) Then kod sat&#305;r&#305; ile eklenti olup olmad&#305;&#287;&#305; s&#305;nanmaktad&#305;r.

E&#287;er eklentiyse, VBA6 versiyon (yani 2000'li versiyon) kontrol&#252; yap&#305;lmakta,

E&#287;er do&#287;ruysa(2000'li versiyonsa) ; prvFontListGet prosed&#252;r&#252; i&#351;letilmekte

E&#287;er yanl&#305;&#351;sa(2000'li versiyonlardan &#246;nceyse);

ilk &#246;nce eklenti &#246;zelli&#287;i FALSE yap&#305;lmakta (yani bir bak&#305;ma sheet'ler g&#246;r&#252;nt&#252;lenmekte) ve daha sonra prvFontListGet prosed&#252;r&#252; &#231;al&#305;&#351;t&#305;r&#305;lmakta, tekrar dosya addin yap&#305;lmakta ve kaydedilmektedir.

E&#287;er bu kitap hali haz&#305;rda eklenti (xla) de&#287;ilse, prvFontListGet direkt olarak &#231;al&#305;&#351;t&#305;r&#305;lmaktad&#305;r.

Kodlar&#305;n Ne i&#351; yapt&#305;&#287;&#305;n&#305; siz biliyorsunuz. Ben sadece terc&#252;mesini yapt&#305;m :)
 
Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
te&#351;ekk&#252;r ederim hocam....
birde eklenti ise Kendini varsay&#305;lan references listesine eklese s&#252;per olacak ama oda ba&#351;ak bir konu
 
Üst