【VBA】名前をつけて保存ダイアログを使用してファイルパスを取得する

VBA で名前をつけて保存ダイアログを使用し、ファイル保存先のフルパスを取得する関数です。

関数概要

  • 関数名: FNCGetSaveAsFilePath
  • 入力引数; P_IN_InitialFilePath : ダイアログ表示時の初期フォルダのパスを指定します。
  • 出力引数: P_OUT_SaveAsFilePath : 保存先ファイルのフルパスが設定されます。
  • 返り値:リターンコードが返却されます。

実行例

  • P_IN_InitialFilePath で指定したフォルダを初期表示として、名前をつけて保存ダイアログを表示します。
  • ファイル保存先のフルパスが P_OUT_SaveAsFilePath に設定して関数を終了します。

ダウンロード

UsefulEdgeではよく使うVBA処理を共通クラスとして提供しています。

以下からダウンロードが可能です。

UEVBACommonClass.cls

使用方法


    Dim UEVBA as UEVBACommonClass
    UEVBA = new UEVBACommonClass
    Dim SaveFilepath As String
    If UEVBA.FNCGetSaveAsFilePath("c:\", SaveFilepath) <> UEVBA.ReturnNormal Then
        Err.Raise Number:=8, Description:="FNCGetSaveAsFilePath Error"
    End If
    MsgBox(SaveFilepath)

ソースコード


'-----------------------------------------------------------------
' 名前をつけて保存ダイアログを使用してファイルパスを取得する
'-----------------------------------------------------------------
Function FNCGetSaveAsFilePath(P_IN_InitialFilePath As String, P_OUT_SaveAsFilePath As String) As Integer
On Error GoTo ErrorHandler
    FNCGetSaveAsFilePath = Me.ReturnError
    Dim ObjFileDialog As Object
    Dim StrFileName As String
    Set ObjFileDialog = Application.FileDialog(msoFileDialogSaveAs)
    ObjFileDialog.InitialFileName = P_IN_InitialFilePath
    If ObjFileDialog.Show Then
        StrFileName = ObjFileDialog.SelectedItems(1)
        FNCGetSaveAsFilePath = Me.ReturnNomal
    Else
        FNCGetSaveAsFilePath = Me.ReturnWarning
    End If
    P_OUT_SaveAsFilePath = StrFileName
    Exit Function
ErrorHandler:
    MsgBox Err.Number & ":" & Err.Description, vbCritical, "エラー"
    FNCGetSaveAsFilePath = Err.Number
    Exit Function
End Function
[商品価格に関しましては、リンクが作成された時点と現時点で情報が変更されている場合がございます。]

ExcelVBAを実務で使い倒す技術 [ 高橋宣成 ]
価格:1944円(税込、送料無料) (2019/7/23時点)

返信を残す

メールアドレスが公開されることはありません。