Excel'de Tüm Çalışma Kitaplarında VBA Makrolarınızı Nasıl Kaydedip Kullanırsınız?
Örneğin, tekrarlayan hesaplamaları otomatikleştirmek, veri biçimlendirmek veya sayıları kelimelere dönüştürmek gibi özel işlevler için farklı Excel çalışma kitaplarında aynı VBA makrosunu sürekli olarak kullanmanız gereken birçok durum vardır. Yaygın bir sorun, makroların varsayılan olarak yalnızca oluşturuldukları çalışma kitabında saklanmasıdır; bu da yeni belgelerde kolayca erişilemez veya yeniden kullanılamaz olmaları anlamına gelir. Ancak Excel, her yeni çalışma kitabı açıldığında kodu yeniden kopyalamaya gerek kalmadan VBA makrosunu genel olarak kullanılabilir hale getirmek için esnek yöntemler sunar. Bu öğretici, VBA makrolarınızı tüm çalışma kitaplarında kolayca erişilebilir kılmak için çeşitli yaklaşımlara yönelik kapsamlı talimatlar sağlar, böylece üretkenliğinizi ve iş akışınızı artırır.
Tüm Çalışma Kitaplarında VBA Kodunu Kaydetme ve Kullanma
Kişisel Makro Çalışma Kitabı Yöntemi
Örneğin, sayıları İngilizce kelimelere dönüştürmek için özel bir VBA kodu kullanmak istediğinizi ve hangi çalışma kitabında çalıştığınızdan bağımsız olarak bu özelliğin her zaman mevcut olmasını sağlamak istediğinizi varsayalım. Doğru yaklaşım ile, VBA modüllerinizi Excel'de ihtiyaç duyduğunuzda yeniden kullanılabilir şekilde kaydedebilirsiniz. Bu özellikle, birden fazla dosyada kod yinelemek zorunda kalmadan her seferinde erişmek istediğiniz özel işlevler veya otomasyonlar için faydalıdır.
Bunu yapmak için, VBA kodunuzu özel bir Excel Eklentisi olarak paketleyebilirsiniz. Bu eklenti, Excel'de etkinleştirilebilir ve özel işlevselliğinizi genel olarak kullanılabilir bir işlev olarak ortaya çıkarır.
Aşağıdaki adımları izleyin:
1. Excel'de Alt + F11 tuşlarına basarak "Microsoft Visual Basic for Applications" penceresini açın.
2. VBA düzenleyicisinde, Ekle > Modül'e tıklayın ve aşağıdaki makroyu yeni oluşturulan Modül penceresine yapıştırın.
VBA kodu: Sayıları kelimelere dönüştürme
Function NumberstoWords(ByVal MyNumber)
'Update by ExtendofficeDim xStr As StringDim xFNum As IntegerDim xStrPointDim xStrNumberDim xPoint As StringDim xNumber As StringDim xP() As VariantDim xDPDim xCnt As IntegerDim xResult, xT As StringDim xLen As IntegerOn Error Resume NextxP = Array("", "Thousand ", "Million ", "Billion ", "Trillion ", " ", " ", " ", " ")
xNumber = Trim(Str(MyNumber))
xDP = InStr(xNumber, ".")
xPoint = ""
xStrNumber = ""
If xDP >0 ThenxPoint = " point "
xStr = Mid(xNumber, xDP +1)
xStrPoint = Left(xStr, Len(xNumber) - xDP)
For xFNum =1 To Len(xStrPoint)
xStr = Mid(xStrPoint, xFNum,1)
xPoint = xPoint & GetDigits(xStr) & " "
Next xFNumxNumber = Trim(Left(xNumber, xDP -1))
End IfxCnt =0xResult = ""
xT = ""
xLen =0xLen = Int(Len(Str(xNumber)) /3)
If (Len(Str(xNumber)) Mod3) =0 Then xLen = xLen -1Do While xNumber <> ""
If xLen = xCnt ThenxT = GetHundredsDigits(Right(xNumber,3), False)
ElseIf xCnt =0 ThenxT = GetHundredsDigits(Right(xNumber,3), True)
ElsexT = GetHundredsDigits(Right(xNumber,3), False)
End IfEnd IfIf xT <> "" ThenxResult = xT & xP(xCnt) & xResultEnd IfIf Len(xNumber) >3 ThenxNumber = Left(xNumber, Len(xNumber) -3)
ElsexNumber = ""
End IfxCnt = xCnt +1LoopxResult = xResult & xPointNumberstoWords = xResultEnd FunctionFunction GetHundredsDigits(xHDgt, xB As Boolean)
Dim xRStr As StringDim xStrNum As StringDim xStr As StringDim xI As IntegerDim xBB As BooleanxStrNum = xHDgtxRStr = ""
On Error Resume NextxBB = TrueIf Val(xStrNum) =0 Then Exit FunctionxStrNum = Right("000" & xStrNum,3)
xStr = Mid(xStrNum,1,1)
If xStr <> "0" ThenxRStr = GetDigits(Mid(xStrNum,1,1)) & "Hundred "
ElseIf xB ThenxRStr = "and "
xBB = FalseElsexRStr = " "
xBB = FalseEnd IfEnd IfIf Mid(xStrNum,2,2) <> "00" ThenxRStr = xRStr & GetTenDigits(Mid(xStrNum,2,2), xBB)
End IfGetHundredsDigits = xRStrEnd FunctionFunction GetTenDigits(xTDgt, xB As Boolean)
Dim xStr As StringDim xI As IntegerDim xArr_1() As VariantDim xArr_2() As VariantDim xT As BooleanxArr_1 = Array("Ten ", "Eleven ", "Twelve ", "Thirteen ", "Fourteen ", "Fifteen ", "Sixteen ", "Seventeen ", "Eighteen ", "Nineteen ")
xArr_2 = Array("", "", "Twenty ", "Thirty ", "Forty ", "Fifty ", "Sixty ", "Seventy ", "Eighty ", "Ninety ")
xStr = ""
xT = TrueOn Error Resume NextIf Val(Left(xTDgt,1)) =1 ThenxI = Val(Right(xTDgt,1))
If xB Then xStr = "and "
xStr = xStr & xArr_1(xI)
ElsexI = Val(Left(xTDgt,1))
If Val(Left(xTDgt,1)) >1 ThenIf xB Then xStr = "and "
xStr = xStr & xArr_2(Val(Left(xTDgt,1)))
xT = FalseEnd IfIf xStr = "" ThenIf xB ThenxStr = "and "
End IfEnd IfIf Right(xTDgt,1) <> "0" ThenxStr = xStr & GetDigits(Right(xTDgt,1))
End IfEnd IfGetTenDigits = xStrEnd FunctionFunction GetDigits(xDgt)
Dim xStr As StringDim xArr_1() As VariantxArr_1 = Array("Zero ", "One ", "Two ", "Three ", "Four ", "Five ", "Six ", "Seven ", "Eight ", "Nine ")
xStr = ""
On Error Resume NextxStr = xArr_1(Val(xDgt))
GetDigits = xStrEnd Function
3. Şimdi, pencerenin sol üst köşesinde bulunan "Kaydet" simgesine tıklayın veya basitçe Ctrl + S tuşlarına basarak "Farklı Kaydet" iletişim kutusunu açın.
4. "Farklı Kaydet" penceresinde, "Dosya adı" alanına istenen dosya adını girin. "Kaydetme Biçimini Belirt" açılır menüsünde, kesinlikle Excel Eklentisi (*.xlam).
seçeneğini seçtiğinizden emin olun. 5. Makronuzu bir Excel Eklentisi dosyası olarak kaydetmek için "Kaydet" düğmesine tıklayın. Bu işlem, herhangi bir çalışma kitabında her zaman etkinleştirilebilen yeniden kullanılabilir bir eklenti oluşturur.
6. Kaydedildikten sonra, Excel'e geri dönün ve az önce Eklentiye dönüştürdüğünüz çalışma kitabını kapatın.
7. Makronuzu kullanmak istediğiniz yeni veya mevcut bir çalışma kitabı açın. Özel formülü uygun hücreye girin (örneğin, B2'de):
=NumberstoWords(A2)

8. Şeritteki Geliştirici sekmesine gidin ve Excel Eklentileri grubundaki düğmeye tıklayın.
9. Görüntülenen Eklentiler iletişim kutusunda Gözat.
10. Daha önce kaydettiğiniz Eklenti dosyasını bulun ve seçin, ardından Tamam.
11. "Sayıyı Kelimeye Dönüştürme Eklentisi" gibi özel Eklentiniz artık Eklentiler listesinde görünmelidir. Seçili olduğundan emin olun ve Tamam tıklayarak etkinleştirin.
12. Şimdi, hedef hücreye (örneğin, B2) özel işlevi tekrar girin ve Enter tuşuna basın. Formülün sayıyı doğru İngilizce kelimelere çevirdiğini görmelisiniz.
=NumberstoWords(A2)
13. Dönüşüm formülünü birden fazla sayıya hızlıca uygulamak için hücrenin otomatik doldurma tutamacını aşağı doğru sürükleyerek işlevi diğer hücrelere kopyalayın.

İpuçları & Notlar:
- Makronuzu bir Eklenti olarak kaydetmek, tüm çalışma kitaplarınızda aynı özel işlevleri, kodları veya otomasyonları kullanmanıza olanak tanır; bu da zamandan tasarruf eder ve tutarlılığı artırır.
- Excel kapatılırsa veya Eklenti daha sonra devre dışı bırakılırsa, Eklentinin işlevleri Eklenti tekrar yükleneceği zaman geçici olarak "#AD?" gösterebilir. Karışıklığı önlemek için, gerektiğinde Eklentiyi Eklentiler yöneticisinde her zaman etkinleştirilmiş olduğundan emin olun.
- Bazı kullanıcılar varsayılan olarak Geliştirici sekmesini görmeyebilir. Etkinleştirmek için şeride sağ tıklayın, "Şeridi Özelleştir" seçeneğini seçin ve "Geliştirici" seçeneğini işaretleyin.
- Eklentileri kalıcı bir klasörde saklamak iyi bir uygulamadır; böylece dosyalar taşınır veya yeniden adlandırılırsa referansların kaybolmasını önlersiniz.
Kod çalıştırmayı tercih ederseniz, bu da mümkündür ve hata ayıklama veya ad hoc kullanım sırasında bazen faydalı olabilir:
- Hızlı Erişim Araç Çubuğu'na bir makro atayabilir ve herhangi bir görünür çalışma kitabında tek tıklamayla çalıştırabilirsiniz. Bunu yapmak için Hızlı Erişim Araç Çubuğu'na sağ tıklayın, "Hızlı Erişim Araç Çubuğunu Özelleştir" seçeneğini seçin ve makronuzu ekleyin.
- Ayrıca, Alt + F11 tuşlarına basarak VBA düzenleyiciyi açabilir, makronuzu manuel olarak seçebilir ve kodu çalıştırmak için F5 tuşuna basabilirsiniz.
Avantajlar: Bu çözüm, Eklenti etkin olduğu sürece her zaman çalışacak zengin, yeniden kullanılabilir makro işlevselliği oluşturma ve paylaşmanıza olanak tanır.
Dezavantajlar: Kullanıcılar Eklentiyi yüklemeyi unutabilir ve çalışma kitaplarını paylaşıyorsa ayrıca Eklenti dosyasını ve işlev ayrıntılarını da paylaşmalıdır. Ayrıca, Eklentiler Excel Online'da kullanılamaz.
Sık kullanılan veya en çok kullanılan makrolarınızın her Excel oturumunda, hangi çalışma kitabı açık olursa olsun hazır olmasını sağlamanın başka bir pratik yolu, Kişisel Makro Çalışma Kitabı (PERSONAL.XLSB) kullanmaktır. Bu, Excel'in her başlatıldığında otomatik olarak yüklenen özel bir gizli Excel dosyasıdır ve içinde saklanan her makro tüm açık çalışma kitaplarında erişilebilir hale gelir.
Uygulanabilir senaryolar: Kişisel otomasyonlar, rutin biçimlendirme betikleri veya resmi Excel Eklentileri olarak paylaşmanız gerekmeyen yardımcı işlevler için idealdir. PERSONAL.XLSB'deki makrolar, hangi dosya açık olursa olsun bilgisayarınızda kullanılabilir.
Avantajlar: Makrolar yerel Excel profilinizde genel olarak kullanılabilir hale gelir ve herhangi bir eklentinin veya ekstra dosyanın kurulumuna gerek yoktur.
Dezavantajlar: Bu şekilde saklanan makrolar, yalnızca PERSONAL.XLSB'nin bulunduğu bilgisayar ve hesapta kullanılabilir. Başkalarıyla paylaşmak için modülleri manuel olarak dışa aktarmanız ve içe aktarmanız gerekir.
- Bu yöntemi kullanmak için, önce bir makro kaydetmeniz veya oluşturmanız ve bunun Kişisel Makro Çalışma Kitabı'na kaydedildiğinden emin olmanız gerekir.
Aşağıdaki adımları izleyin:
- Excel'i açın. Görünüm sekmesinde, Makrolar'a tıklayın ve ardından Makro Kaydet'i seçin.
- Açılan diyalogda, "Makroyu kaydet" altında Kişisel Makro Çalışma Kitabı'nı seçin. Kaydı tamamlayın (gerekmese de hemen durdurabilirsiniz).
- Alt + F11 tuşlarına basarak VBA düzenleyiciye girin; burada PERSONAL.XLSB için bir proje göreceksiniz. Burada yeni bir modül ekleyin veya istediğiniz makro kodunu yapıştırın.
- Değişikliklerinizi kaydedin. Excel, PERSONAL.XLSB çalışma kitabını başlangıç klasöründe otomatik olarak oluşturur ve korur.
- PERSONAL.XLSB'deki makrolar, Makrolar diyalogu (Alt + F8) üzerinden, şerit veya araç çubuğu düğmelerine atanarak veya VBA'dan çağrılabilir.
Sorun Giderme & Bakım: Eğer PERSONAL.XLSB'deki makrolar kullanılamıyorsa, Excel'in Güvenli Mod'da açılıp açılmadığını veya makro güvenlik ayarlarının “Tüm makroları devre dışı bırak” olarak ayarlanmış olup olmadığını kontrol edin. Ayrıca, PERSONAL.XLSB varsayılan olarak gizlidir; yanlışlıkla kaydetmeden kapattıysanız veya sildiyseniz, yeniden oluşturmak için bir makro kaydetmeniz gerekebilir.
C:\Users\[YourUserName]\AppData\Roaming\Microsoft\Excel\XLSTART\PERSONAL.XLSB
Excel'deki Tüm Eklentileri Listelemek İçin Bir VBA Kodu
Excel'de verilerle daha iyi başa çıkmak için bazı eklentiler ekleyebilir veya yerleştirebilirsiniz. Bildiğimiz gibi, tüm eklentileri görüntülemek için Seçenekler penceresine gidebiliriz ancak tüm eklentileri bir sayfada listelemek için bir yol var mı? Şimdi, bu öğreticide Excel'deki tüm eklentileri listelemek için bir VBA kodu sağlanmaktadır.
Çalışma Kitabını Açarken veya Kapatırken VBA Makrosu Nasıl Çalıştırılır?
Bu makalede, çalışma kitabını her açtığınızda veya kapattığınızda VBA kodunu nasıl çalıştıracağınızı anlatacağım.
Excel'de VBA Kodunu Nasıl Koruyabilir / Kilitlersiniz?
Çalışma kitaplarını ve çalışma sayfalarını korumak için parola kullanabileceğiniz gibi, Excel'deki makroları korumak için de bir parola ayarlayabilirsiniz.
Excel'de VBA Makrosu Çalıştırdıktan Sonra Zaman Gecikmesi Nasıl Kullanılır?
Bazı durumlarda, Excel'de bir VBA Makrosunu tetiklemek için bir zamanlayıcı gecikmesi yapmanız gerekebilir. Örneğin, belirli bir makroyu çalıştırmak için tıkladığınızda, 10 saniye sonra etkili olacaktır. Bu makale, bunu başarmak için bir yöntem gösterecek.
En İyi Ofis Verimlilik Araçları
Kutools for Excel ile Excel becerilerinizi güçlendirin, daha önce hiç yaşamadığınız bir verimlilik deneyimini yaşayın. Kutools for Excel, üretkenliğinizi artıracak ve zamanı kaydetmenizi sağlayacak300’den fazla gelişmiş özellik sunar. En çok ihtiyaç duyduğunuz özelliği almak için buraya tıklayın...
Office Tab, Office’e sekmeli arayüz kazandırır ve işinizi çok daha kolaylaştırır
- Word, Excel, PowerPoint’te sekmeli düzenleme ve okuma işlevini etkinleştirin.
- Aynı pencere içerisinde yeni sekmelerde birden fazla belge açın veya oluşturun, yeni pencerelerde açmak yerine.
- Verimliliğinizi %50 artırın, her gün yüzlerce fare tıklamasını sizin için azaltın!