VBA'da bir Excel dosyasının nasıl açılacağını veya kaydedileceğini zaten biliyoruz. Workbook nesnesinin Open ve SaveAs yöntemini kullanıyoruz. Ancak bu, dosya yolunun sabit kodlanmasını gerektirir. Ancak çoğu zaman son kullanıcının GUI kullanarak bir dosya seçmesini veya kullanıcının dosyanın konumunu görsel ve kolay bir şekilde seçmesini sağlayan Dosya Aç veya Farklı Kaydet İletişim kutusu demesini isteyeceksiniz.
Bu yazıda, çalışma kitabı açma iletişim kutusunu görüntülemek ve iletişim kutusu olarak kaydetmek için kullanılan kodu ele alıyoruz.
İndirebileceğiniz bir çalışma kitabı ekledim. Bu makaleye eklenen çalışma kitabı üç makro içeriyor
Dosya Aç İletişim Kutusunu Kullanarak Dosya Açmak için VBA Kodu
Bu kodda Uygulamanın GetOpenFilename yöntemini kullanacağız. GetOpenFilename yönteminin sözdizimi şöyledir:
Application.GetOpenFilename([FileFilter],[FilterIndex],[Title],[ButtonText],[MultiSelect])
[Dosya Filtresi]: Select klasöründe sadece bir tür dosya gösterecek şekilde tanımlayabilirsiniz. "Excel-Files, *.xlsx, *.xls, *.xlsm" vb. yazarsanız, dosya açma iletişim kutusundaki klasörden sadece excel dosyaları gösterilecektir.
[FiltreIndex]:Kullanmak istediğiniz dosya filtresi sayısıdır.
[Başlık]: İletişim kutusunun başlığı.
[ButtonText]:Düğme metnini belirtmek için. Önemli değil.
[Çoklu seçim]: Boolean bir değişkendir. True veya 1 olarak ayarlarsanız, birden fazla dosya seçebileceksiniz. Yanlış olarak ayarlarsanız, yalnızca bir dosya seçebilirsiniz.
Teori yeter. Hadi biraz büyü yapalım.
Her Seferde Bir Dosya Açmak için VBA Kodu
Seçenek Explicit Sub OpenOneFile() Dim FileName As Variant 'Açık dosya iletişim kutusunu görüntüleme FileName = Application.GetOpenFilename("Excel-files,*.xls", _ 1, "Açılacak Bir Dosya Seçin", , False) 'Kullanıcı yapmadı ' bir dosya seçin TypeName(FileName) = "Boolean" ise Sub Exit Sub 'Çalışma kitabını açın Çalışma Kitapları.Open FileName End Sub
O nasıl çalışır?
Bu kod parçasını çalıştırdığınızda, Uygulama nesnesi için GetOpenFilename yöntemi bir Dosya Aç İletişim kutusu açacaktır. İletişim kutusunun başlığı, kodda tanımladığımız gibi "Açılacak Bir Dosya Seçin" olacaktır. Bir dosya seçerseniz, Worbook.Open kodu çalışacak ve dosya açılacaktır. Bir dosya seçmezseniz, alt, Workbook.Open kodunu çalıştırmadan çıkacaktır.
Bir Anda Bir veya Daha Fazla Dosya Açmak için VBA Kodu
Bu kod parçası, dosya açma iletişim kutusunu açacaktır, ancak aynı anda birden fazla dosya seçebileceksiniz.
Sub OpenMultipleFiles() Dim FileName As Variant, f As Integer 'Açık dosya iletişim kutusunu görüntüleme FileName = Application.GetOpenFilename("Excel-files,*.xlsx", _ 1, "Açılacak Bir veya Daha Fazla Dosya Seçin", , True ) 'Kullanıcı bir dosya seçmedi If TypeName(FileName) = "Boolean" Sonra Exit Sub 'Kullanıcı tarafından seçilen tüm çalışma kitaplarını aç For f = 1 To UBound(FileName) Workbooks.Open FileName(f) Sonraki f End Sub
Burada multiselect değişkenini True olarak ayarladığımızı unutmayın. Bu, dosyanın çoklu seçimini sağlayacaktır.
Farklı Kaydet İletişim Kutusunu Açmak için VBA Kodu
Farklı Kaydet iletişim kutusunu açmak için Uygulama nesnesinin GetSaveAsFilename yöntemini kullanacağız. Yöntemin sözdizimi şöyledir:
Application.GetSaveAsFilename([InitialFileName],[FileFilter],[FilterIndex],[Title],[ButtonText])
[İlk DosyaAdı]:İlk dosya adı. Dosyayı kaydederken yeniden adlandırmazsanız, dosyanız bu adla kaydedilir.
[Dosya Filtresi]: Select klasöründe sadece bir tür dosya gösterecek şekilde tanımlayabilirsiniz. "Excel-Files, *.xlsx, *.xls, *.xlsm" vb. yazarsanız, dosya açma iletişim kutusundaki klasörden sadece excel dosyaları gösterilecektir.
[FiltreIndex]: Dosyanın filtre dizini.
[Başlık]:İletişim kutusunun başlığı.
[ButtonText]:Bu, Mac sisteminde düğmenin adını değiştirmek için kullanılır.
Lütfen kod için aşağıdan takip edin
Sub SaveFile() Dim FileName As Variant 'Saveas iletişim kutusunu görüntüleme FileName = Application.GetSaveAsFilename("MyFileName.xls", _ "Excel files,*.xls", 1, "Klasörünüzü ve dosya adınızı seçin") 'Kullanıcı yapmadı' t bir dosyayı kaydetme Eğer TypeName(FileName) = "Boolean" Sonra Sub Exit Sub 'Çalışma kitabını kaydedin ActiveWorkbook.SaveAs FileName End Sub
SaveFile Macro, farklı kaydet iletişim kutusunu açmak, dosya adını atamak ve çalışma kitabının kaydedileceği konumu seçmek için Uygulama nesnesinin GetSaveAsFilename yöntemini kullanır.
Evet arkadaşlar, VBA kullanarak dosyaları açmak ve kaydetmek için iletişim kutusunu bu şekilde kullanabilirsiniz. Umarım yardımcı olmuştur. Bu makale veya başka bir VBA konusuyla ilgili herhangi bir şüpheniz varsa, aşağıdaki yorumlar bölümünde sorun.
Microsoft Excel'de VBA kullanarak kapalı bir çalışma kitabını veritabanı (DAO) olarak kullanma | Kapalı bir çalışma kitabını DAO bağlantılı bir veritabanı olarak kullanmak için Excel'de bu VBA parçacığını kullanın.
Microsoft Excel'de VBA kullanarak kapalı bir çalışma kitabını veritabanı (ADO) olarak kullanma | Kapalı bir çalışma kitabını ADO bağlantılı bir veritabanı olarak kullanmak için Excel'de bu VBA parçacığını kullanın.
Excel VBA UserForms'a Başlarken | Veritabanına veri eklemek için formları kullanırız. Excel Kullanıcı Formları, kullanıcıdan bilgi almak için kullanışlıdır. VBA kullanıcı formlarıyla nasıl başlamanız gerektiği aşağıda açıklanmıştır.
Excel'de VBA kullanarak birkaç UserForm denetiminin değerini/içeriğini değiştirin | Kullanıcı formu denetimlerinin içeriğini değiştirmek için bu basit VBA parçacığını kullanın.
Excel'de VBA kullanarak kullanıcı x düğmesine tıkladığında bir kullanıcı formunun kapanmasını önleyin | Kullanıcı formun x düğmesine tıkladığında kullanıcı formunun kapanmasını önlemek için UserForm_QueryClose olayını kullanıyoruz.
Popüler Makaleler:
Verimliliğinizi Artıracak 50 Excel Kısayolu | Görevinizde daha hızlı olun. Bu 50 kısayol, Excel'de daha da hızlı çalışmanızı sağlayacaktır.
Excel'de DÜŞEYARA İşlevi | Bu, farklı aralıklardan ve sayfalardan değer aramak için kullanılan excel'in en çok kullanılan ve popüler işlevlerinden biridir.
Excel 2016'da EĞERSAY | Bu şaşırtıcı işlevi kullanarak değerleri koşullarla sayın. Belirli bir değeri saymak için verilerinizi filtrelemeniz gerekmez. Gösterge tablonuzu hazırlamak için Countif işlevi gereklidir.
Excel'de SUMIF İşlevi Nasıl Kullanılır | Bu, başka bir gösterge panosu temel işlevidir. Bu, belirli koşullardaki değerleri özetlemenize yardımcı olur