Excel'de Tüm Çalışma Kitaplarında VBA Makrolarınızı Nasıl Kaydedip Kullanırsınız?
Farklı Excel çalışma kitaplarında tekrarlayan hesaplamaları otomatikleştirmek, veri biçimlendirmek veya sayıları kelimelere dönüştürmek gibi özel işlevler için aynı VBA makrosunu tekrar tekrar 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şilememesi veya yeniden kullanılamaması anlamına gelir. Ancak Excel, her yeni çalışma kitabı başlattığınızda kodu yeniden kopyalama ihtiyacını ortadan kaldıran VBA makrosunu küresel olarak kullanılabilir hale getirmek için birkaç esnek yöntem sunar. Bu öğretici, VBA makrolarınızın tüm çalışma kitaplarında kolayca erişilebilir olmasını sağlamak için çeşitli yaklaşımlar için 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 kelimelerine 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ğunuz her seferde yeniden kullanılabilir şekilde kaydedebilirsiniz. Bu özellikle her seferinde erişmek istediğiniz özel işlevler veya otomasyonlar için çok yararlıdır, birden fazla dosyada kodu çoğaltmadan.
Bunu yapmak için, VBA kodunuzu özel bir Excel Eklentisi olarak paketleyebilirsiniz. Bu eklenti, Excel'de etkinleştirilebilir ve özel işlevselliğinizi küresel olarak kullanılabilir bir işlev olarak ortaya çıkarır.
Aşağıdaki adımları izleyin:
1. Excel'de Alt + F11 tuşlarına basın ve "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, herhangi bir çalışma kitabı için herhangi bir zamanda etkinleştirilebilen yeniden kullanılabilir bir eklenti oluşturur.
6. Kaydedildikten sonra, Excel'e 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. Şeride gidin, Geliştirici sekmesine tıklayın ve Excel Eklentileri düğmesine 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 şimdi Eklentiler listesinde görünmelidir. Onun işaretli 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 dönüştürdüğünü görmelisiniz.
=NumberstoWords(A2)
13. Dönüştürme 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, zaman kazandırır ve tutarlılığı artırır.
- Excel kapatılırsa veya Eklenti daha sonra devre dışı bırakılırsa, Eklentiden gelen işlevler Eklenti yeniden yüklenene kadar geçici olarak "#AD?" gösterebilir. Karışıklığı önlemek için, gerektiğinde Eklenti yöneticisinde Eklentinin her zaman etkin olduğundan emin olun.
- Bazı kullanıcılar varsayılan olarak Geliştirici sekmesini görmeyebilir. Etkinleştirmek için, şerite 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, dosyalar taşınırsa veya yeniden adlandırılırsa referansların kaybolmasını önlemek için iyi bir uygulamadır.
Kod çalıştırmayı tercih ederseniz, bu da mümkün olabilir ve hata ayıklama veya ad hoc kullanım için bazen yardımcı olabilir:
- Makroyu Hızlı Erişim Araç Çubuğu'na 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 ardından makronuzu ekleyin.
- Ayrıca Alt + F11 tuşlarına basarak VBA düzenleyicisini 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şma imkanı sunar.
Dezavantajlar: Kullanıcılar Eklentiyi yüklemeyi hatırlamalıdır ve çalışma kitaplarını paylaşırken 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ğlamak için başka bir oldukça pratik yöntem, Kişisel Makro Çalışma Kitabı (PERSONAL.XLSB) kullanmaktır. Bu, Excel her başlatıldığında otomatik olarak yüklenen özel bir gizli Excel dosyasıdır ve içinde depolanan her makronun tüm açık çalışma kitaplarında erişilebilir olmasını sağlar.
Uygulanabilir senaryolar: Resmi Excel Eklentileri olarak paylaşmanız gerekmeyen kişisel otomasyonlar, rutin biçimlendirme betikleri veya 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 profiliniz için küresel olarak kullanılabilir ve eklenti veya ekstra dosya yükleme gerektirmez.
Dezavantajlar: Bu şekilde saklanan makrolar yalnızca PERSONAL.XLSB'nin bulunduğu bilgisayar ve hesapta kullanılabilir. Başkalarıyla paylaşmak, modülleri manuel olarak dışa aktarmayı ve içe aktarmayı gerektirir.
- Bu yöntemi kullanmak için, önce bir makro kaydetmeniz veya oluşturmanız ve 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.
- İletişim kutusunda, "Makroyu kaydet" altında Kişisel Makro Çalışma Kitabı'nı seçin. Kaydı tamamlayın (gerekmese hemen durdurabilirsiniz).
- PERSONAL.XLSB için bir proje göreceğiniz VBA düzenleyicisine girmek için Alt + F11 tuşlarına basın. 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ı otomatik olarak oluşturur ve başlangıç klasöründe saklar.
- PERSONAL.XLSB'deki makrolar, Makrolar iletişim kutusu (Alt + F8) üzerinden çalıştırılabilir, şerit veya araç çubuğu düğmelerine atanabilir 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 mı açıldığına veya makro güvenlik ayarlarının "Tüm makroları devre dışı bırak" olarak ayarlanmış olup olmadığına bakın. Ayrıca, PERSONAL.XLSB varsayılan olarak gizlidir; yanlışlıkla kaydetmeden kapatırsanız veya silerseniz, yeniden oluşturmak için bir makro kaydetmeniz gerekebilir.
C:\Users\[YourUserName]\AppData\Roaming\Microsoft\Excel\XLSTART\PERSONAL.XLSB
Excel'de 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 eğitimde, Excel'de tüm eklentileri listelemek için bir VBA kodu sunulmaktadır.
Çalışma Kitabı Açılırken veya Kapanı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 / Kilitleyebilirim?
Ç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 nasıl başaracağınızı gösterecektir.
En İyi Ofis Verimlilik Araçları
Kutools for Excel ile Excel becerilerinizi geliştirin ve daha önce hiç olmadığı kadar verimli olun. Kutools for Excel, üretkenliğinizi artırmak ve zamanınızı kaydetmek için300'den fazla gelişmiş özellik sunar. En çok ihtiyacınız olan özelliği almak için buraya tıklayın...
Office Tab, Office'e sekmeli arayüz getirir ve işinizi çok daha kolaylaştırır
- Word, Excel, PowerPoint'te sekmeli düzenleme ve okuma özelliğini etkinleştirin.
- Aynı pencerenin yeni sekmelerinde birden fazla belge açın ve oluşturun, yeni pencerelerde değil.
- Verimliliğinizi %50 artırır ve her gün yüzlerce fare tıklamasını azaltır!