Belli Uzantılı Resimleri Seç Ve Tam Yolunu Al - Microsoft Excel


Aşağıdaki kodlar resim seçmek için FileDialog penceresinde sacece jpg, bmp, png, jpeg, ico, gif uzantılı dosyaları gösteriyor ve bunlardan bir tanesini seçmenize imkan tanıyor.

Kod


Option Explicit

Sub BelliUzantiliResimleriSecVeTamYolunuAl()
    '--------------------------------------------------
    'Değişkenler
    '--------------------------------------------------
    Dim kaynak_dosya_yolu As String
    Dim hedef_klasor As String
    Dim dosya_diyalog As FileDialog
    Dim dosya_filtre As FileDialogFilters
    
    '--------------------------------------------------
    'FileDialog penceresi için ayarlama yap.
    '--------------------------------------------------
    Set dosya_diyalog = Application.FileDialog(msoFileDialogOpen)
    
    With dosya_diyalog
        .AllowMultiSelect = False
        .Title = "Bir resim seçin."
        .Filters.Clear
        .InitialView = msoFileDialogViewDetails
        Set dosya_filtre = .Filters
    
        '--------------------------------------------------
        'Dosya filtresini ayarla.
        '--------------------------------------------------
        With dosya_filtre
            .Clear
            .Add "Resim Dosyaları", "*.jpg,*.png,*.bmp,*.jpeg,*.ico,*.gif"
        End With
    
        '--------------------------------------------------
        'Eğer uygun bir dosya seçilmişse tam yolu mesaj olarak göster.
        '--------------------------------------------------
        If .Show = -1 Then
          kaynak_dosya_yolu = _
              Application.FileDialog(msoFileDialogOpen).SelectedItems(1)
          MsgBox kaynak_dosya_yolu
        End If
    End With
End Sub

Kod (Açıklamalı)


Option Explicit

Sub BelliUzantiliResimleriSecVeTamYolunuAl()

    '--------------------------------------------------
    'Değişkenler
    '--------------------------------------------------
    Dim kaynak_dosya_yolu As String
    Dim hedef_klasor      As String
    Dim dosya_diyalog     As FileDialog
    Dim dosya_filtre      As FileDialogFilters
    
    '--------------------------------------------------
    'dosya_diyalog değişkenimize atama yapıyoruz.
    '--------------------------------------------------
    Set dosya_diyalog = Application.FileDialog(msoFileDialogOpen)
    
    With dosya_diyalog
    
        '--------------------------------------------------
        'Birden fazla dosya seçmeye izin vermiyoruz.
        '--------------------------------------------------
        .AllowMultiSelect = False
    
        '--------------------------------------------------
        'FileDialog penceresinin başlığını yazdık.
        '--------------------------------------------------
        .Title = "Bir resim seçin."
    
        '--------------------------------------------------
        'Önceden belirlenmiş filtre bilgilerini temizledik.
        '--------------------------------------------------
        .Filters.Clear
    
        '--------------------------------------------------
        'FileDialog penceresindeki dosyaların görünümünü belirledik.
        '--------------------------------------------------
        .InitialView = msoFileDialogViewDetails
    
        '--------------------------------------------------
        'dosya_filtre değişkeni için atama yapıyoruz.
        '--------------------------------------------------
        Set dosya_filtre = .Filters
    
        '--------------------------------------------------
        'Filtre için ayarlama yapıyoruz.
        '--------------------------------------------------
        With dosya_filtre
        
            '--------------------------------------------------
            'Temizlik işlemini yapıyoruz.
            '--------------------------------------------------
            .Clear
    
            '--------------------------------------------------
            'İstediğimiz uzantıları ekliyoruz.
            'İlk önce uzantı listemiz için başlık
            'belirliyoruz, sonra da uzantılarımızı yazıyoruz.
            '--------------------------------------------------
            .Add "Resim Dosyaları", "*.jpg,*.png,*.bmp,*.jpeg,*.ico,*.gif"
        End With
        
        '--------------------------------------------------
        'Şu anda dosya_diyalog değişkeni için kullanılan With
        'içindeyiz. dosya_diyalog.Show = -1 yani daha uzun
        'haliyle aşağıdaki gibi olan kod şu manaya geliyor:
        'Application.FileDialog(msoFileDialogOpen).Show = -1
        'Eğer FileDialog penceresinde eylem butonuna basılırsa
        '("Aç" butonu) -1 değeri döndürüyor. Eğer iptal butonuna
        'basılırsa 0 değerini döndürüyor. Bu değer Long tipinde.
        '
        'Bu kod için -1 yerine True değeri de koyulabilir.
        'Hatta hiçbir şey koyulmayabilir de. If kısmı zaten
        'en nihayetinde tek bir mantıksal (bool) değere
        'ulaşmaya çalışıyor. dosya_dialog.Show da bir
        'bool değer ürettiğinden dolayı bir şeye 
        'eşitlemesek de if kısmı çalışacak.
        '
        'Neyse, bu -1 olayı biraz daha çetrefilli,
        'meraklı kardeşlerimizi şu web bağlantısına
        'alalım ve açıklamayı da çok uzatmayalım:
        'https://stackoverflow.com/a/14462348
        '--------------------------------------------------
        If .Show = -1 Then

            '--------------------------------------------------
            'Eğer dosya seçilmiş ve eylem butonuna (Aç)
            'basılmışsa seçilen dosyanın tam yolunu al.
            '--------------------------------------------------
            kaynak_dosya_yolu = _
                Application.FileDialog(msoFileDialogOpen).SelectedItems(1)
            
            '--------------------------------------------------
            'Tam yolu mesaj olarak göster.
            '--------------------------------------------------
            MsgBox kaynak_dosya_yolu
        End If
    End With
End Sub

Yararlanılan Kaynaklar
Etiketler
microsoft excel