【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時点)

[

楽天で購入

](https://hb.afl.rakuten.co.jp/hgc/156e5f8f.d5d194cd.156e5f90.9ce91fc7/?pc=https%3A%2F%2Fitem.rakuten.co.jp%2Fbook%2F14714310%2F%3Fscid%3Daf_pc_bbtn&m=http%3A%2F%2Fm.rakuten.co.jp%2Fbook%2Fi%2F18413544%2F%3Fscid%3Daf_pc_bbtn&link_type=picttext&ut=eyJwYWdlIjoiaXRlbSIsInR5cGUiOiJwaWN0dGV4dCIsInNpemUiOiIyNDB4MjQwIiwibmFtIjoxLCJuYW1wIjoicmlnaHQiLCJjb20iOjEsImNvbXAiOiJkb3duIiwicHJpY2UiOjEsImJvciI6MSwiY29sIjoxLCJiYnRuIjoxfQ==)

速攻でメモできる QuickNote リリースしました!

QuickNoteは動作が超軽量でサクサクかけるノートアプリです。一瞬の閃きを逃さずにノートを開き書き始めることができます。 アカウント登録も不要です。お試しあれ!

Excel操作をコマンドで! proBoarderExcel

Excelはマウスで操作するのが基本ですが、マウス操作に疲れてはいませんか? キーボードでExcel操作ができるようになるアプリです。オープンソースで無料です。

積み上げ! Daily Stack リリースしました!

Daily Stack は日々の積み上げを管理するToDoアプリです。過去の積み上げの振り返りだけでなく、ツイート機能もあります。 アカウント登録不要ですぐに使い始めることができます。

ExecNote.app リリースしました!

ExecNoteは、コードが実行できるMarkdownアプリケーションです。Markdownドキュメント内に記載したコードをクリックすると実行ができます。わざわざターミナルを 起動させる必要がありません!無料ですのでもしよければダウンロードをお願いします。

About Me

11年目のシステムエンジニアです。アプリで生活や仕事を改善したい🐱仕事効率化、自動化のアプリ開発が得意です、ご相談ください。 🚀エンタメ系アプリの開発も模索中🐬社内SEや個人アプリ開発者、システムエンジニアになりたい人と繋がりたい🐱