アプリケーションとしてのVBA Excel(エクセル) VBA の役立つ Tips の紹介

アプリケーションとしてのVBA

ファイルのパスを取得する



ファイルのパスを取得する


  ファイルのパスを取得する方法です。
  
  GetFilePath と GetFilePath2 の2つ載せましたが、どちらでも結果も見た目も同じです。
  
  File種類にパスを取得したい拡張子を記述します。
  
  CSVなら
          File種類(0) = "CSVファイル"
          File種類(1) = "*.csv"
      または
          File種類 = "CSVファイル,*.csv"

  テキストなら
          File種類(0) = "テキストファイル"
          File種類(1) = "*.txt"
      または
          File種類 = "テキストファイル,*.txt"
  
  こんな感じです。
  
  
Sub GetFilePath()

    Dim FileNamePath                                As String
    Dim File種類(1)                                 As String
    Dim Prompt                                      As String

    File種類(0) = "Excelファイル"
    File種類(1) = "*.xls;*.xlsx;*.xlsm"
    
    Prompt = "Excelのファイルを選択してください"
    
    FileNamePath = SelectFilePath(FileNamePath, File種類, Prompt)
    
    If FileNamePath = "" Then
        'キャンセルボタンが押された
        Exit Sub
    End If

End Sub


Sub GetFilePath2()

    Dim FileNamePath                                As Variant
    Dim File種類                                    As String
    Dim Prompt                                      As String

    File種類 = "Excelファイル,*.xls;*.xlsx;*.xlsm"
    Prompt = "Excelのファイルを選択してください"
    FileNamePath = SelectFileNamePath(File種類, Prompt)
    
    If FileNamePath = False Then
        'キャンセルボタンが押された
        Exit Sub
    End If

End Sub


Function SelectFilePath(Path, File種類, Prompt) As String

    'msoFileDialogFilePicker ユーザーがファイルを選択できます。
    'msoFileDialogFolderPicker ユーザーがフォルダを選択できます。
    'msoFileDialogOpen ユーザーがファイルを開くことができます。
    'msoFileDialogSaveAs ユーザーがファイルを保存できます。
    
    With Application.FileDialog(msoFileDialogFilePicker)
            
        .Title = Prompt
        .Filters.Add File種類(0), File種類(1)
        .InitialFileName = Path
        
        If .Show = -1 Then  'アクションボタンがクリックされた
            SelectFilePath = .SelectedItems(1)
        Else                'キャンセルボタンがクリックされた
            SelectFilePath = ""
        End If
    End With
     
End Function


Function SelectFileNamePath(File種類, Prompt)

    SelectFileNamePath = Application.GetOpenFilename(File種類, , Prompt)

End Function

  StartKitsParts.xls をダウンロードして、ご使用ください。




Copy (C) 2005   アプリケーションとしてのVBA   All Rights Reserved.