VBA kullanarak açmak için bir dosya seçmenizi sağlar. Application.GetOpenFilename yöntem. Bu öğreticide, bir dosya iletişim kutusunu nasıl açacağınızı ve parametreleri nasıl ayarlayacağınızı öğreneceksiniz.
Bir dosyayı nasıl açıp kapatacağınızı öğrenmek istiyorsanız şu linke tıklayabilirsiniz: VBA Open/Close File
VBA'da bir Dosya İletişim Kutusu Açın
VBA'da bir dosya açmak istiyorsanız, önce bir dosya seçmek için bir dosya iletişim kutusu açmanız gerekir. İşte kod:
123 | Dize Olarak Dim strFilestrFile = Application.GetOpenFilename( |
Gördüğünüz gibi, yöntemin birkaç parametresi var. Dosya Filtresi bizim durumumuzda .xlsx dosyalarında ihtiyacınız olan dosya türlerini filtrelemenize olanak tanır.
İçinde Başlık parametre, iletişim kutusunun başlığını ayarlayabilirsiniz. Birden fazla dosyanın açılmasına izin vermek istiyorsanız, ayarlamanız gerekir. Çoklu Seçim True'ya. Bu parametreyi ayarlamazsanız yalnızca bir dosya seçilebilir.
Resim 1. Bir dosya iletişim kutusu açın
Resim 1'de görebileceğiniz gibi, iletişim kutusu başlığıyla birlikte görünür. Bir Excel dosyası seçin. Yalnızca Excel dosyaları filtrelenir ve birden fazla dosya seçebiliriz.
Belirli Bir Klasörde Dosya İletişim Kutusu Açın
Belirli bir klasörde bir iletişim kutusu açmak istiyorsanız, yöntemi kullanmanız gerekir. .FileDialog parametre ile msoFileDialogDosya Seçici. Örnekte, klasörde bir iletişim kutusu açacağız. C:\VBA Klasörü. İşte kod:
123456789101112131415161718192021 | Dim fd As Office.FileDialogDize Olarak Dim strFilefd = Application.FileDialog(msoFileDialogFilePicker) olarak ayarlayınfd ile.Filtreler.Temizle.Filters.Add "Excel Dosyaları", "*.xlsx?", 1.Title = "Bir Excel dosyası seçin".AllowMultiSelect = Yanlış.InitialFileName = "C:\VBA Klasörü".Show = True isestrFile = .SelectedItems(1)Bitirİle bitmek |
İlk önce değişkeni bildirmeniz gerekir fd tip Office.FileDialog ve dosya alma için dize değişkeni:
12 | Dim fd As Office.FileDialogDize Olarak Dim strFile |
Bundan sonra, ayarlamanız gerekir fd ile Application.FileDialog(msoFileDialogFilePicker):
1 | fd = Application.FileDialog(msoFileDialogFilePicker) olarak ayarlayın |
Şimdi, içinde fd ile Bitir, birden fazla parametre ayarlayabiliriz:
1234567 | .Filtreler.Temizle.Filters.Add "Excel Dosyaları", "*.xlsx?", 1.Title = "Bir Excel dosyası seçin".AllowMultiSelect = Yanlış |
Burada dosya filtrelerini temizliyoruz (.Filtreler.Temizle) ve .xlsx olarak ayarlayın (.Filters.Add “Excel Files”, “*.xlsx?”, 1).
Ayrıca, iletişim kutusunun başlığını da ayarlayabiliriz: .Title = “Bir Excel dosyası seçin”.
Bir kullanıcıyı yalnızca bir dosya seçecek şekilde sınırlayabiliriz: .AllowMultiSelect = Yanlış
İstediğimiz klasörde bir iletişim kutusu açmak için kodun şu satırını koymamız gerekiyor:
1 | .InitialFileName = "C:\VBA Klasörü" |
Sonunda, önceden ayarlanmış tüm parametrelerle iletişim kutusunu açacağız:
12345 | .Show = True isestrFile = .SelectedItems(1)Bitir |
Bu kodu çalıştırdığımızda, klasörde dosya açma iletişim kutusu belirir. C:\VBA Klasörü:
Resim 2. Belirli bir klasörde bir dosya iletişim kutusu açın