GetOpenFilename aynı zamanda FSO'nun bir özniteliği olan bir yöntemdir, bu yöntem VBA'da bir dosya adı olan belirli bir dosyayı bulmak ve seçmek için kullanılır, bu yöntemdeki önemli faktör onu açmak için sağlanan dosya adının yoludur, ya işlevdeki dosya adının yolunu geçebilir ya da kullanıcıdan onu seçmek için bir dosya yolu sunmasını isteyebiliriz.
Excel VBA Uygulaması.GetOpenFilename
Belirli dosya adına erişmemiz gereken durumlar vardır ve bu VBA kodlamasıyla mümkün olabilir. Dosyaya erişmek için, dosya uzantısı ile birlikte klasör yolunu ve dosya adını da belirtmemiz gerekiyor. Dosya adını almak için birçok kodlayıcı, dosya yolunu ve dosya adını girme seçenekleri olarak VBA giriş kutusunu verir. Ancak bu pratik yapmak için iyi bir seçenek değildir, çünkü kullanıcının önüne bir giriş kutusu sunduğunuzda, her zaman dosya yolunu, bir klasörü başka bir klasörden ayırmak için ters eğik çizgi, dosya adlarını ve dosyaların uzantısını hatırlamazlar. . Bu, kullanıcı tarafından verilen girdiyi daha karmaşık hale getirir ve sonunda küçük bir boşluk karakteri hatası olsa bile her şey alt üst olur. En iyi yol, giriş kutusunu VBA'nın "GetOpenFileName" adlı yöntemiyle değiştirmektir.
Bu makalede, dosya adını hatasız almak için VBA GetOpenFileName'in nasıl kullanılacağını göstereceğiz.
GetOpenFilename Excel VBA'da ne yapar?
VBA “GetOpenFileName” kullanıcının dosyayı açmadan üzerinde çalıştığımız bilgisayardan seçmesine izin verir.
“GetOpenFileName” yönteminin yardımıyla aslında kullanıcının önünde gerekli klasördeki dosyayı seçmesi için bir diyalog kutusu sunabiliriz. GetOpenFileName, dosya konumunu dosya adı ve dosya uzantısıyla birlikte kopyalayacaktır.
Excel VBA'da GetOpenFilename sözdizimi
“GetOpenFilename” yönteminin sözdizimine bir göz atın.
- Dosya Filtresi: Bu argümanda, hangi tür dosyaların seçileceğini belirleyebiliriz. Örneğin, "Excel Dosyaları, *. Xlsx" den bahsederseniz, yalnızca "xlsx" excel uzantısıyla kaydedilmiş Excel Dosyalarını görüntüler, başka hiçbir dosya görüntülenmez. Görmezden gelirseniz, her türlü dosya görüntülenecektir.
- Filtre Dizini: Bununla, kullanıcının dosya türünü seçmesini kısıtlıyoruz. Dosya Filtresi altında görünecek filtre sayısını belirtebiliriz .
- Başlık: Dosya seç diyalog kutusu başlığını gösterir.
- Düğme Metni: Bu yalnızca Macintosh içindir.
- Çoklu Seçim: Birden fazla dosya seçmek istiyorsanız DOĞRU, yoksa YANLIŞ. Varsayılan değer YANLIŞ'tır.
Excel VBA'da GetOpenFilename Örneği
Aşağıda VBA Application.GetOpenFilename örnekleri verilmiştir.Bu VBA GetOpenFilename Excel Şablonunu buradan indirebilirsiniz - VBA GetOpenFilename Excel Şablonu
Dosya adını ve yol adresini almak için bir kod yazalım.
Adım 1: Alt programı başlatın.
Kod:
Alt GetFile_Example1 () Son Alt
Adım 2: Bir değişkeni String olarak bildirin.
Kod:
Alt GetFile_Example1 () Dim FileName As String End Sub
Adım 3: Bu değişken için GetOpenFileName atayacağız.
Kod:
Alt GetFile_Example1 () Dim FileName As String FileName = Application.GetOpenFilename () End Sub
Şu an itibariyle tüm parametreleri görmezden geldim.
Adım 4: Şimdi mesaj kutusunda değişkenin sonucunu gösterin.
Kod:
Alt GetFile_Example1 () Dim FileName As String FileName = Application.GetOpenFilename () MsgBox FileName End Sub
Şimdi kodu excel kısayol tuşu F5 ile veya manuel olarak çalıştırın, dosyayı seçmek için aşağıdaki diyalog kutusunu gösterecektir.
Herhangi bir dosya seçeceğim ve Tamam'a tıklayacağım
Dosyayı seçer seçmez VBA'da bunun gibi bir mesaj kutusu aldım. Dosya uzantısı ile birlikte tam klasör yolunu ve seçilen excel dosya adını gösterir.
Yukarıdaki görselde gördüğümüz gibi her türlü dosyayı görebiliyoruz. Şimdi ilk parametreyi, yani Dosya Filtresini “Excel Dosyaları, *. Xlsx” olarak ekleyeceğim.
Kod:
Alt GetFile_Example1 () Dim FileName As String FileName = Application.GetOpenFilename (FileFilter: = "Excel Dosyaları, *. Xlsx") MsgBox FileName End Sub
Şimdi bu kodu F5 tuşunu kullanarak veya manuel olarak çalıştırırsam, yalnızca “xlsx” uzantılı Excel dosyalarını göreceğim.
Bunun gibi, dosyanın Dosya Adı ve uzantısı ile birlikte klasör yolunu almak için “VBA Application.GetOpenFileName” yöntemini kullanabiliriz.