Excel'de VBA makrolarınızı tüm çalışma kitaplarında nasıl kaydedip kullanabilirsiniz?
Aynı VBA makrosunu, tekrarlayan hesaplamaları otomatikleştirmek, veri biçimlendirmeyi standartlaştırmak veya sayıları sözcüklere dönüştürmek gibi özel işlevleri gerçekleştirmek amacıyla farklı Excel çalışma kitaplarında tekrar tekrar kullanmanız gerekebilir. Ancak karşılaşılan yaygın bir zorluk, makroların varsayılan olarak yalnızca oluşturuldukları çalışma kitabında saklanmasıdır; bu da yeni belgelerde bunlara kolayca erişmenizi veya yeniden kullanmanızı engeller. Neyse ki Excel, VBA makrolarınızı genel olarak kullanılabilir hale getirmek için birkaç esnek yöntem sunar—böylece her yeni çalışma kitabı oluşturduğunuzda kodu tekrar kopyalamanıza gerek kalmaz. Bu öğretici, VBA makrolarınızın tüm çalışma kitaplarınızda sorunsuzca erişilebilir olmasını sağlamak için çeşitli yaklaşımları adım adım açıklar ve hem üretkenliğinizi artırır hem de iş akışınızı optimize eder.

VBA Kodunu Tüm Çalışma Kitaplarında Kaydedin ve Kullanın
Kişisel Makro Çalışma Kitabı Yöntemi
Örneğin, sayıları eşdeğer İngilizce kelimelere dönüştürmek için özel bir VBA kodu kullanmak ve bu özelliğin hangi çalışma kitabında olursanız olun her zaman hazır bulunduğundan emin olmak istediğinizi düşünelim. Doğru yaklaşım sayesinde VBA modüllerinizi, Excel’de ihtiyaç duyduğunuzda yeniden kullanılabilir şekilde kaydedebilirsiniz. Bu yöntem, özellikle birden fazla dosyada aynı kodu tekrarlamadan özel işlevlerinize veya otomasyonlarınıza anında erişmek istiyorsanız büyük kolaylık sağlar.
Bunu yapmak için VBA kodunuzu özel bir Excel Eklentisi olarak paketleyebilirsiniz. Bu eklenti, Excel’de etkinleştirildiğinde özel işlevselliğinizi genel olarak kullanılabilir bir işlev haline getirir.
Aşağıdaki adımları izleyin:
1. Excel'de "Microsoft Visual Basic for Applications" penceresini açmak için Alt + F11 tuşlarına basın.
2. VBA düzenleyicide, Ekle > Modül seçeneğine tıklayın ve aşağıdaki makroyu yeni oluşturulan Modül penceresine yapıştırın.
VBA kodu: Kelimeye Dönüştür Dönüştür
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öşesindeki "Kaydet" simgesine tıklayın ya da "Farklı Kaydet" iletişim kutusunu açmak için Ctrl + S tuşlarına basın.
4. "Farklı Kaydet" penceresinde, "Dosya adı" alanına istediğiniz dosya adını girin. "Kaydetme Biçimini Belirt" açılır menüsünden Excel Eklentisi (*.xlam) seçeneğinin seçili olduğundan emin olun.
5. Çalışma kitabınızı, herhangi bir çalışma kitabında istediğiniz zaman etkinleştirebileceğiniz yeniden kullanılabilir bir eklenti olarak kaydetmek için "Kaydet" düğmesine tıklayın.
6. Kaydettikten 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ını açın ve özel formülü ilgili hücreye girin (örneğin B2):
=NumberstoWords(A2) 
8. Geliştirici sekmesine gidin ve Eklentiler grubundaki Excel Eklentileri düğmesine tıklayın.
9. Görünen Eklentiler iletişim kutusunda Gözat seçeneğini seçin.
10. Daha önce kaydettiğiniz eklenti dosyasını bulun ve seçin, ardından Tamam düğmesine tıklayın.
11. "Sayıyı Sözcüklere Dönüştür Eklentisi" gibi özel eklentiniz artık Eklentiler listesinde görünecektir. İşaretli olduğundan emin olun ve etkinleştirmek için Tamam düğmesine tıklayın.
12. Şimdi, hedef hücreye (örneğin B2) özel işlevi tekrar girin ve Enter tuşuna basın. Formülün sayının doğru İngilizce karşılığını döndürdüğünü göreceksiniz.
=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ı ve Notlar:
- Makronuzu bir eklenti olarak kaydetmek, özel işlevlerinizi, kodunuzu ve otomasyonlarınızı tüm çalışma kitaplarınızda kullanmanıza, zamandan tasarruf etmenize ve tutarlılığı artırmanıza olanak tanır.
- Excel kapatıldığında veya eklenti daha sonra devre dışı bırakıldığında, eklentiden gelen işlevler eklenti tekrar yüklene kadar geçici olarak "#AD?" hatası gösterebilir. Karışıklığı önlemek için eklentinin gerektiğinde her zaman Eklentiler Yöneticisi’nde etkin olduğundan emin olun.
- Bazı kullanıcılar Geliştirici sekmesini varsayılan olarak göremez. Etkinleştirmek için Şerit’e sağ tıklayıp “Şeridi Özelleştir” seçeneğini seçin ve “Geliştirici” kutusunu işaretleyin.
- Başvuruların dosyalar taşındığında veya yeniden adlandırıldığında kaybolmasını önlemek için eklentileri kalıcı bir klasörde saklamak en iyi uygulamadır.
Kodu manuel çalıştırmayı tercih ediyorsanız, bu da mümkündür ve hata ayıklama sırasında veya anlık kullanım için bazen faydalıdır:
- Herhangi bir görünür çalışma kitabında tek tıklamayla makroyu çalıştırmak için onu Hızlı Erişim Araç Çubuğuna atayabilirsiniz. Bunun için Hızlı Erişim Araç Çubuğuna sağ tıklayın, “Hızlı Erişim Araç Çubuğunu Özelleştir” seçeneğini belirleyin ve ardından makronuzu ekleyin.

- Ayrıca, VBA düzenleyicisini açmak için Alt + F11 tuşlarına basın, makronuzu manuel olarak seçin ve kodu gerektiği gibi çalıştırmak için F5 tuşuna basın.
Avantajlar: Bu çözüm, eklenti etkin olduğu sürece her zaman çalışan, zengin ve yeniden kullanılabilir makro işlevselliği oluşturmanızı ve paylaşmanızı sağlar.
Dezavantajlar: Kullanıcıların eklentiyi yüklemeyi hatırlaması gerekir; ayrıca çalışma kitaplarınızı paylaşıyorsanız, eklenti dosyasını ve işlev ayrıntılarını da paylaşmalısınız. Unutmayın: Eklentiler Excel Çevrimiçi’de çalışmaz.
En sevdiğiniz veya en çok kullandığınız makroların, hangi çalışma kitabının açık olduğuna bakılmaksızın her Excel oturumunda hazır olmasını sağlamak için son derece pratik bir başka yol da Kişisel Makro Çalışma Kitabını (PERSONAL.XLSB) kullanmaktır. Bu, Excel her başlatıldığında otomatik olarak yüklenen özel bir gizli dosyadır ve içinde saklanan tüm makrolara her açık çalışma kitabından erişmenizi sağlar.
Uygulanabilir senaryolar: Resmi Excel eklentileri olarak paylaşmanız gerekmeyen kişisel otomasyonlar, rutin biçimlendirme betikleri veya yardımcı program işlevleri için mükemmeldir. PERSONAL.XLSB dosyanızdaki makrolar, hangi dosya açık olursa olsun bilgisayarınızda her zaman hazırdır.
Avantajlar: Makrolar, yerel Excel profilinizde genel olarak kullanılabilir ve eklenti veya ek dosya yüklenmesini gerektirmez.
Dezavantajlar: Bu şekilde saklanan makrolar yalnızca PERSONAL.XLSB dosyasının bulunduğu bilgisayarda ve kullanıcı hesabında çalışır. Başkalarıyla paylaşmak için modülleri manuel olarak dışa ve içe aktarmanız gerekir.
- Bu yöntemi kullanmak için öncelikle bir makro kaydetmeniz veya oluşturmanız ve bunun Kişisel Makro Çalışma Kitabınızda saklandığından emin olmanız gerekir.
Aşağıdaki adımları izleyin:
- Excel'i açın. Görünüm sekmesinde, Makrolar seçeneğine tıklayın ve ardından Makro Kaydet seçeneğine tıklayın.
- İletişim kutusundaki "Makroyu şuraya kaydet" bölümünden Kişisel Makro Çalışma Kitabı seçeneğini seçin. Kaydı tamamlayın (gerekmiyorsa hemen durdurabilirsiniz).
- VBA düzenleyicisine girmek için Alt + F11 tuşlarına basın; PERSONAL.XLSB dosyası için bir proje göreceksiniz. Buraya yeni bir modül ekleyebilir veya istediğiniz makro kodunu yapıştırabilirsiniz.
- Değişikliklerinizi kaydedin. Excel, PERSONAL.XLSB çalışma kitabını başlangıç klasöründe otomatik olarak oluşturur ve yönetir.
- PERSONAL.XLSB içindeki makrolar, Makrolariletişim kutusu ()Alt + F8) üzerinden çalıştırılabilir, Şerit veya araç çubuğu düğmelerine atanabilir ya da VBA'dan çağrılabilir.
Sorun Giderme ve Bakım: PERSONAL.XLSB dosyasındaki makrolar çalışmı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 yapılandırılıp yapılandırılmadığını kontrol edin. Ayrıca PERSONAL.XLSB varsayılan olarak gizlidir; yanlışlıkla kaydetmeden kapatır ya da silerseniz, yeniden oluşturmak için bir makroyu tekrar kaydetmeniz gerekebilir.
C:\Users\[YourUserName]\AppData\Roaming\Microsoft\Excel\XLSTART\PERSONAL.XLSBExcel'de Tüm Eklentileri Listeleyen Bir VBA Kodu
Excel'de verilerle daha verimli çalışmak için çeşitli eklentiler ekleyebilirsiniz. Bildiğiniz gibi, tüm eklentileri görüntülemek için Seçenekler penceresini kullanabilirsiniz—peki ya tüm eklentileri tek bir sayfada listeleyen bir yöntem var mı? İşte bu öğreticide, Excel'de yüklü tüm eklentileri anında listeleyen bir VBA kodunu sizinle paylaşıyoruz!
Ç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 ya da kapattığınızda VBA kodunun nasıl çalıştırılacağını adım adım anlatacağım.
Excel'de VBA Kodunu Nasıl Koruyabilir / Kilitleyebilirim?
Çalışma kitaplarınızı ve çalışma sayfalarınızı parola ile koruyabildiğiniz gibi, Excel'deki makroları da parola ile koruyabilirsiniz.
Excel'de Bir VBA Makrosu Çalıştırdıktan Sonra Zaman Gecikmesi Nasıl Uygulanır?
Bazı durumlarda, Excel’de bir VBA makrosunu tetiklerken zaman gecikmesine ihtiyacınız olabilir. Örneğin, belirli bir makroyu çalıştırmak için tıkladığınızda, işlemin 10 saniye sonra gerçekleşmesini sağlayabilirsiniz. Bu makalede, bunu nasıl yapabileceğiniz adım adım açıklanmaktadır.
En İyi Office Üretkenlik Araçları
Kutools for Excel ile Excel becerilerinizi üst düzeye taşıyın ve verimlilikten önce hiç yaşamadığınız bir deneyim yaşayın.Kutools for Excel, üretkenliği artırmak ve Zamanı Kaydet için 300’den fazla gelişmiş özelliğe sahiptir.İhtiyacınız olan özelliği hemen edinmek için buraya tıklayın…
Office Tab, Office uygulamalarına sekmeli arayüz getirir ve işlerinizi çok daha kolay hale getirir
- Word, Excel, PowerPoint, Publisher, Access, Visio ve Project'te sekmeli düzenleme ve okuma özelliğini etkinleştirin.
- Birden fazla belgeyi yeni pencerelerde değil, aynı pencerenin yeni sekmelerinde açın ve oluşturun.
- Günlük üretkenliğinizi %50 artırır ve her gün yüzlerce fare tıklamasından tasarruf etmenizi sağlar!
Tüm Kutools eklentileri — tek bir kurulum dosyasında!
Kutools for Office paketi; Excel, Word, Outlook ve PowerPoint için eklentileriyle birlikte Office Tab Pro’yu da içerir ve Office uygulamalarında çalışan ekipler için idealdir.
- Hepsi bir arada paket— Excel, Word, Outlook ve PowerPoint eklentileri + Office Tab Pro
- Tek kurulum, tek lisans— birkaç dakikada hazır (MSI uyumlu)
- Birlikte daha iyi çalışır— Office uygulamaları arasında akıcı üretkenlik
- 30 günlük tam özellikli deneme— kayıt gerekmez, kredi kartı gerekmez
- En iyi fiyat-performans— tek tek eklenti satın almak yerine tasarruf edin
