VBA FileDialog - VBA Kodunu Kullanarak FilesDialog Box Nasıl Açılır?

İçindekiler

Excel VBA FileDialog

VBA'da fieldialog, farklı örnekleri temsil etmek için kullanılan bir özelliktir, filedialog'da, belirli bir yoldan bir dosya seçmek için kullanılan msofiledialogfilepicker olarak bilinen dört farklı sabit türü vardır, ikincisi msofiledialogfolderpicker'dır, bu ad, seçmek için kullanılır. bir klasör ve üçüncüsü, bir dosyayı açmak için açık olan msofiledialog'dur ve sonuncusu, bir dosyayı yeni bir dosya olarak kaydetmek için kullanılan msofiledialogsaveas'dır.

Verileri başka bir dosyadan veya başka bir çalışma sayfasından istediğimiz belirli durumlar vardır ve VBA işimizi otomatikleştirmek için kullanıldığından, VBA'yı kullanarak farklı diğer dosyaları açabiliriz ve bu harika kısım olan Dosya iletişim kutusu kullanılarak yapılır. Bu yöntemi kullanmak, koda giden yolu sağlamamıza gerek kalmaması, bunun yerine kullanıcıdan dosyaya göz atmasını istememizdir.

VBA projesinin bir parçası olarak, diğer çalışma kitaplarını açıp onlarla bir tür görev yürütmemiz gerekebilir. Önceki makalelerden biri olan "VBA Workbook.Open" da, belirli bir yol ve belirli bir dosyaya sahip dosyaların nasıl açılacağını gösterdik. Orada, klasör yolunu ve dosya adını uzantısıyla birlikte sağlamamız gerekiyordu. Ama ya bir kullanıcının her seferinde farklı klasörlerden farklı dosyaları seçmesi gerekiyorsa. "FileDialog" seçeneğinin resmin içine girdiği yer burasıdır.

VBA FileDialog Seçeneği Nasıl Çalışır?

"Tam yolu bilmiyorsanız, FileDialog dosyayı bulup size seçecektir." Yol adresi ve dosya adından bahsetmek yerine, dosyayı bilgisayardaki herhangi bir klasörden seçmek için ayrı bir dosya açma iletişim penceresi sunabiliriz.

"FileDialog" , VBA'daki bir nesnedir. Bu seçeneği kullanmak için önce değişkeni FileDialog olarak tanımlamamız gerekiyor.

Değişken "FileDialog" olarak bildirildiğinde, bir nesne değişkenidir. Bunu kullanmaya başlamak için Application.FileDialog kullanarak nesneyi ayarlamamız gerekir.

Yukarıdaki resimde gördüğümüz gibi, FileDialog'un beraberinde dört seçeneği vardır.

  • msoFileDialogFilePicker: Bu seçenek, kullanıcının isteğine göre istenen dosyayı seçmek için dosya seçici penceresini açar.
  • msoFileDialogFolderPicker: Bu seçenek, Klasörü seçmek için kullanıcının önündeki iletişim kutusunu veya pencereyi açar.
  • msoFileDialogOpen: Bu, kullanıcının seçilen dosyayı klasörden açmasına izin verir.
  • msoFileDialogSaveAs: Bu, kullanıcının dosyayı farklı bir kopya olarak kaydetmesine izin verecektir.

Şu an itibariyle msoFileDialogFilePicker seçeneğini seçtim.

Şimdi karşımıza çıkan diyalog kutusunu tasarlamamız gerekiyor.

With Statement kullanarak diyalog kutusunu tasarlayabiliriz.

With deyiminin içine, FileDialog seçeneğinin özelliklerinin ve yöntemlerinin IntelliSense listesini görmek için bir nokta koyun.

Dosya iletişim kutusu açıldığında yalnızca excel dosyalarını görmek için önce uygulanan filtrelerden herhangi birini kaldırmamız gerekir.

Şimdi, excel dosyalarının joker karakter uzantısına sahip "Excel Dosyaları" olarak yeni bir filtre uygulamamız gerekiyor.

Şimdi dosya diyalog kutusunun başlığını değiştirelim.

Kullanıcının bir seferde yalnızca bir dosya seçmesine veya birden fazla dosya seçmesine de izin verebiliriz. Bunun için "Çoklu Seçime İzin Ver" seçeneğini kullanmamız gerekiyor.

Burada iki seçeneğimiz var. DOĞRU seçilirse, kullanıcının birden fazla dosya seçmesine izin verecektir. Öyleyse, FALSE kullanıcı bir seferde yalnızca bir dosya seçebilir.

FileDialog ile tasarlayabileceğimiz başka bir şey de, dosya iletişim kutusu göründüğünde varsayılan klasörün ne olması gerektiği konusunda ısrar edebiliriz. Bu kullanım için, İlk Dosya Adı.

Bunun için adres yolu açılacak varsayılan klasörden bahsetmemiz gerekiyor.

Son olarak, dosya iletişim kutusunu görmek için “Göster” yöntemini uygulamamız gerekiyor.

Kod:

Sub DoEvents_Example1() Dim Myfile As FileDialog Set Myfile = Application.FileDialog(msoFileDialogFilePicker) With Myfile .Filters.Clear .Filters.Add "Excel Files", "*.xlsx?", 1 .Title = "Choose Your Excel File!!!" .AllowMultiSelect = False .InitialFileName = "D:Excel Files" .Show End With End Sub

Now run the VBA code to see the result.

As we can see in the above image file dialog box has opened the mentioned folder by default.

Now we can select any subfolder and select the excel files.

Look at the above image because we have applied the filter parameter as “Excel Files” only.

This will just select the file from the mentioned folder. To store the full path, we need to declare one more variable as a string.

Now inside the with the statement, select “SelectedItems.” Assign the selected items folder path to the newly defined variable.

Now finally show the selected folder path in the VBA message box.

Now I will run the program to see the dialogue box.

Now I have selected the File Name as “1. Charts.xlsx” in the subfolder “Charts.” If I click on OK, we can see the full folder path in the message box.

So, like this, we can use the FileDialog option to select the files from the folder in Excel. Use the below code to select the files.

Code:

Alt DoEvents_Example1 () Myfile As FileDialog Ayarla Myfile = Application.FileDialog (msoFileDialogFilePicker) Dosya Adresini Dize Olarak Myfile .Filters.Clear .Filters.Add "Excel Dosyaları", "* .xlsx?", 1 .Title = " Excel Dosyası !!! " .AllowMultiSelect = False .InitialFileName = "D: Excel Dosyaları" .Show FileAddress = .SelectedItems (1) MsgBox FileAddress End Sub ile Bitir

Ilginç makaleler...