• DİKKAT

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

References Kontrolü

Katılım
14 Şubat 2006
Mesajlar
3,426
Excel Vers. ve Dili
(Excel 2016 - İngilizce)
Merhaba,

Makro ile herhangi bir References'ın seçili olup olmadığını kontrol edebilirmiyiz?
Tabi önce bu References'ın bilgisayarda olup olmadığınıda kontrol etmek gerekiyor.

Örneğin,

Microsoft Outlook 10.0 Object Library

Teşekkürler.
 
Daha iyi bir çözüm bulunabilir ama aşağıdaki kodu deneyebilirsiniz.

Kod:
Sub referanskontrol()
On Error GoTo 10
For a = 1 To ThisWorkbook.VBProject.References.Count
aranan = ThisWorkbook.VBProject.References.Item(a).Name
If aranan = "Outlook" Then
MsgBox "ARANAN REFERANS İŞARETLİDİR"
Exit Sub
End If
Next
sor = MsgBox("REFERANS BULUNARAK İŞARETLENSİN Mİ?", vbYesNo)
If sor = vbYes Then ThisWorkbook.VBProject.References.AddFromGuid "{00062FFF-0000-0000-C000-000000000046}", 1, 0
MsgBox "REFERANS İŞARETLENDİ"
Exit Sub
10 MsgBox "REFERANS MEVCUT DEĞİL"
End Sub
 
Son düzenleme:
Sayın leventm hocam,

Kodları çalıştırdığımda "REFERANS MEVCUT DEĞİL" sonucunu alıyorum.

For a = 1 To ThisWorkbook.VBProject.References.Count satırında

Run-time error '1004':
Method 'VbProject of _Workbook' failed

hatası veriyor.

Sanırım benim bilgisayarımdaki eksik bir bilgiden kaynaklanıyor.

Galiba Referans kontrol içinde Refarans seçmek gerekiyor. :D

Kolay Gelsin.
 
Bir de şunu deneyin, bir şey fark edecek mi bilemiyorum ...

Kod:
Sub CreateRef_Outlook()
    For Each myRefs In Application.VBE.ActiveVBProject.References
     If myRefs.Name = "Outlook" Then Application.VBE.ActiveVBProject.References.Remove myRefs
    Next
    Set ID = ThisWorkbook.VBProject.References
    ID.AddFromGuid "{00062FFF-0000-0000-C000-000000000046}", 1, 0
End Sub

Güvenlik ayarlarından "VB projelerine erişime güven" kısmını da onaylamakta fayda olabilir...
 
Haluk' Alıntı:
Bir de şunu deneyin, bir şey fark edecek mi bilemiyorum ...

Kod:
Sub CreateRef_Outlook()
    For Each myRefs In Application.VBE.ActiveVBProject.References
     If myRefs.Name = "Outlook" Then Application.VBE.ActiveVBProject.References.Remove myRefs
    Next
    Set ID = ThisWorkbook.VBProject.References
    ID.AddFromGuid "{00062FFF-0000-0000-C000-000000000046}", 1, 0
End Sub

Güvenlik ayarlarından "VB projelerine erişime güven" kısmını da onaylamakta fayda olabilir...

Sayın Haluk bey, ben denedim çalışıyor. Bu bilgi çok işimize yarayacak. Çok teşekkürler.


Kodlar aşağıdaki gibidir. Saygılarımla. :dua:

Private Sub Workbook_Open()
Select Case Val(Application.Version)
Case Is = 9
ThisWorkbook.VBProject.References.AddFromFile _
"C:\Program Files\Microsoft Office\Office\Msoutl9.olb"
ThisWorkbook.VBProject.References.AddFromFile _
"C:\Program Files\Microsoft Office\Office\Msword9.olb"
Case Is = 11
ThisWorkbook.VBProject.References.AddFromFile _
"C:\Program Files\Microsoft Office\Office11\Msoutl.olb"
ThisWorkbook.VBProject.References.AddFromFile _
"C:\Program Files\Microsoft Office\Office11\Msword.olb"
End Select
End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim i As Integer
Dim theRef
Dim refName As String
For i = 1 To ThisWorkbook.VBProject.References.Count
Set theRef = ThisWorkbook.VBProject.References.Item(i)
refName = theRef.Name
If refName = "Outlook" Then
ThisWorkbook.VBProject.References.Remove theRef
End If
If refName = "Word" Then
ThisWorkbook.VBProject.References.Remove theRef
End If
Next
ActiveWorkbook.Save
End Sub
 
Merhaba,

Sn.Haluk Bey

Güvenlik ayarlarından "VB projelerine erişime güven" kısmını da onaylamakta fayda olabilir...

açıklamanız ile problem giderilmiş oldu.

Her 2 cevapta mükemmel çalışıyor.
Teşekkürler.
 
bende şu an OWC11 yüklü değil oınun referans değeri nedir?
kitap açılrken OWC11 yüklü olmadığı için mesaj versin ve kitapı kapatsın.
 
bende şu an OWC11 yüklü değil oınun referans değeri nedir?
kitap açılrken OWC11 yüklü olmadığı için mesaj versin ve kitapı kapatsın.

Bir dosyada bir userform ve bu userformun üzerineden örneğin bir spreadsheet nesnesi yerleştirin. Daha sonrada aşağıdaki kodu çalıştırın. Böylece ilgili referansların gerekli bilgilerine ulaşabilirsiniz.

Kod:
Sub referanslistesi()
For Each referans In ActiveWorkbook.VBProject.References
c = c + 1
Cells(c, "a") = referans.Name
Cells(c, "b") = referans.Description
Cells(c, "c") = referans.GUID
Cells(c, "d") = referans.Major
Cells(c, "e") = referans.Minor
Cells(c, "f") = referans.fullpath
Next
End Sub
 
hocam kodlar için teşekkür ederim. owc yi kurunca deneeyceğim.
 
Geri
Üst