名前を付けて保存ダイアログを表示しテーブルをExcel形式で保存する : Access

Access VBAでExcelのGetSaveAsFilenameメソッドを使い、名前を付けて保存ダイアログを開きます。「GetSaveAsFilename」を使う為には、事前に参照設定で「Excel Library」を設定しておきます。



BackHome BackTips Backメニュー

■実行画面

Excel形式で保存する、顧客テーブルです。
顧客テーブル

下フォームの[テーブルをExcelで保存]ボタンをクリックすると、実行を開始します。
[テーブルをExcelで保存]ボタンをクリックする

開いた、名前を付けた保存ダイアログです。
初期ファイル名が表示され、ファイルの種類が「Excelファイル」になっています。
名前を付けた保存ダイアログ

テーブルをExcel形式で保存した結果です。
テーブルをExcel形式で保存した結果

■ Access VBA 実行コード


VBE画面のメニューの[ツール]~[参照設定]をクリックします。
[ツール]~[参照設定]をクリックする

参照設定ダイアログが開くので、「Microsoft Excel 〇〇.〇 Object Library」にチェックを入れます。
〇〇.〇部分はバージョンによって異なります。
参照設定ダイアログ

フォームに配置したボタンのクリックイベント

Option Compare Database

Private Sub コマンド0_Click()
    Dim sFina As String
    
    sFina = SaveFile_FileDialog
    
    If sFina <> "" Then
        DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "T-顧客", sFina
    End If
End Sub

標準モジュールのコード
・FileFilterとFilterIndexで、初期の拡張子を指定しています。
・InitialFileNameで、ファイル名の初期値を設定しています。
・Titleでダイアログのタイトルを指定しています。

Option Compare Database

Public Function SaveFile_FileDialog() As String
    Dim oexcel As New Excel.Application
    Dim sfile As String
    
    sfile = oexcel.GetSaveAsFilename( _
        FileFilter:="Excelファイル,*.xls,全てのファイル,*.*", _
        FilterIndex:=1, _
        InitialFileName:="顧客マスター.xls", _
        Title:="名前を付けて保存")

    If sfile = "False" Then
        SaveFile_FileDialog = ""
    Else
        SaveFile_FileDialog = sfile
    End If
    
    Set oexcel = Nothing
    
 End Function

BackHome BackTips Backメニュー

Copyright(C) FeedSoft