SBMJOB
AccessからExcelファイルの出力・取り込みの実装をご紹介します。
目次
Excelファイルエクスポート
出力ボタンを押すと上記のようなダイアログボックスで出力先を指定します。保存ボタンでExcleファイルを出力といった流れになります。
エクスポート用コード
Private Sub コマンド7_Click()
Dim sFina As String
sFina = SaveFile_FileDialog
If sFina <> "" Then
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "テーブル名", sFina, True, "シートxxx名"
End If
End Sub
Public Function SaveFile_FileDialog() As String
Dim oexcel As New Excel.Application
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
出力ボタンクリックでSaveFile_Dialogファンクションがよびだされ、出力先を指定させます。その後、sFinaに出力先を格納します。
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, “テーブル名”, sFina, True, “シートxxx名”
上記TransferSpredsheet acExportコマンドにてエクセルファイルを出力します。
Excelファイルインポート
…ボタンを押してインポート用ダイアログボックスを表示させ、該当ファイルのディレクトリをボタン左のテキストボックスにセットします。「上記ファイルを取り込む」ボタンを押してインポート処理を実行します。
インポートダイアログ表示処理
Private Sub インポートボタン_Click()
Dim df As FileDialog
Set fd = Application.FileDialog(msoFileDialogOpen)
With fd
.AllowMultiSelect = False
.Filters.Clear
.Filters.Add "Any file", "*.*", 1
.Filters.Add "excelファイル", "*.xls; *.xlsx", 2
.FilterIndex = 2
If .Show Then
Me.txt_ダイアログ = .SelectedItems.Item(1)
End If
End With
End Sub
インポートコマンド処理
Private Sub コマンド6_Click()
Dim strpath As String
strpath = Me.txt_ダイアログ
'tableXにインポートする
DoCmd.TransferSpreadsheet acImport, , "テーブル名", strpath, True, "シート名!"
End Sub
DoCmd.TransferSpreadsheet acImport, , “テーブル名”, strpath, True, “シート名!”
上記TransferSpredsheet acImportコマンドにてエクセルファイルを取り込みます。
参考リンク
名前を付けて保存ダイアログを表示しテーブルをExcel形式で保存する : Access VBA
Access VBAでExcelのGetSaveAsFilenameメソッドを使い、名前を付けて保存ダイアログを開きます。「GetSaveAsFilename」を使う為には、事前に参照設定で「Excel Library」を…
Access VBAでExcel・CSVデータをインポートする 🌴 officeの杜 🥥
Accessである程度VBAを使って組んでいくと必ずぶつかる壁が「Excelデータのインポート」です。もともとAccess本体にもインポート機能はついていますが、毎回インポートを手…
コメント