Sheet1 kod modülünün içeriği:
[KOD=vba]Seçenek Açık
Özel Alt SheetSelector_Change()
Seçilen Sayfayı Dizge Olarak Kıs
Dim listBox'ı OLEObject Olarak
listBox = Me.OLEObjects("SayfaSeçici") olarak ayarla
seçiliSayfa = listBox.Object.Value
Eğer seçiliSayfa <> "" ise
Çalışma Sayfaları(seçiliSayfa).Etkinleştir
Eğer Sonlandır
Son Alt Yazı
[/KOD]
ThisWorkbook modülünün içeriğinde şunlar bulunur:
[KOD]Özel Alt Çalışma Kitabı_Açık()
Dim ws Çalışma Sayfası
Dim listBox'ı OLEObject Olarak
Dim SheetNames Koleksiyon Olarak
Dim ve Uzun Süre
' Çalışma sayfası reklamlarını saklamak için bir koleksiyon başlatma
SheetNames = Yeni Koleksiyon'u ayarlayın
' Tüm sayfaların dolaşmasının ve isimlerini koleksiyonuna ekle
ThisWorkbook.Worksheets'teki ws için
sheetNames.Add ws.Name
Sonraki ws
' Zaten mevcut değil Sheet1'e bir liste kutusu ekleyin
Hata durumunda Devam Et Sonraki
listBox = ThisWorkbook.Worksheets("Sayfa1").OLEObjects("SayfaSeçici") olarak ayarla
Hata durumunda 0'a git
Eğer listBox Hiçbir Şeyse O Zaman
listBox = ThisWorkbook.Worksheets("Sayfa1").OLEObjects.Add(SınıfTürü:="Formlar.ListBox.1", _ olarak ayarla
Sol:=10, Üst:=10, Genişlik:=150, Yükseklik:=100)
listBox.Name = "SayfaSeçici"
Eğer Sonlandır
' Liste sayfası sayfa adlarıyla doldur
listBox.Object dosyası
.Temizlemek
i = 1 için sayfaAdları.Count'a
.AddItem sayfaAdları(i)
Sonraki ben
İle Sonlandır
'Zaten mevcut değil, değişiklik olayının işleyicisini atayın
Dim kodModülü Nesne Olarak
Dim kodmetni dize olarak
Dim changeEventExists Boolean Olarak
Dim başlangıç çızgisi Uzun
Dim endLine Uzunluğu
codeModule = ThisWorkbook.VBProject.VBComponents(ThisWorkbook.Worksheets("Sayfa1").KodAdı).codeModule olarak setle
changeEventExists = Yanlış
' Makronun zaten mevcut olup olmadığını kontrol edin
kodModül ile
başlangıç satırı = 1
bitişSatırı = .SatırSayısı
kodMetni = .Lines(başlangıçSatırı, bitişSatırı)
Eğer InStr(1, codeText, "Özel Alt SheetSelector_Change()", vbTextCompare) > 0 ise
changeEventExists = Doğru
Eğer Sonlandır
İle Sonlandır
' Makroyu yalnızca içeriği mevcut değildir
Eğer Değilse değişiklikOlayMevcut O Zaman
codeModule.AddFromString GetChangeEventCode()
Eğer Sonlandır
Son Alt Yazı
Özel Fonksiyon GetChangeEventCode() Boyut Olarak
GetChangeEventCode = _
"Özel Alt SheetSelector_Change()" & vbCrLf & _
"Seçilen Sayfayı Dize Olarak Kıs" & vbCrLf & _
" listBox'ı OLEObject Olarak Kıs" & vbCrLf & _
" listBox = Me.OLEObjects(""SayfaSeçici"")" & vbCrLf & _
"seçilenSayfa = listBox.Object.Value" & vbCrLf & _
" Eğer seçilmişSheet <> """" O zaman" & vbCrLf & _
" Çalışma Sayfaları(seçiliSayfa).Etkinleştir" & vbCrLf & _
"Son Eğer" & vbCrLf & _
"Altyazı Sonu"
Oğul Fonksiyon
[/KOD]
Bu kod, çalışma kitabı açıldığında, Sheet1'de bir ListBox denetiminin kontrolünü yapar. Aksi halde, bir tane oluşur ve çalışma kitabı sayfa adları doldurulur.
ListBox denetimi. ListBox denetimi mevcutsa, bir tane oluşturulmaz ancak çalışma sayfası reklamları bunun içine doldurulur.