Access>Excelファイルに単純エクスポート
Accessファイルで作成したクエリデータを、Excelファイルに単純エクスポートするVBAスクリプトを自分用メモ。特に加工はしません。
あくまでも自分用です。あしからず。
ファイルを指定して処理するスクリプト
Private Sub CmdExport_Click()
Dim fp As String ' ファイルパス
If MsgBox("ファイルを生成します。よろしいですか。", vbYesNo) = vbYes Then
' ファイルパスを設定
fp = CurrentProject.path & "\ファイル名" & Format(Date, "yyyy") & ".xlsx"
' Qry ⇒ Excelファイルをエクスポート
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel12Xml, "Qry", fp, True
' 終了メッセージ
MsgBox ("ファイルを生成しました。")
End If
End Sub
Private Sub CmdExport_Click() ~ End Sub
フォームに貼ったボタン CmdExport をクリックした時に呼び出される関数
Dim fp As String
ファイルパスを指定するための文字列 fp を宣言
If Msgbox("ファイルを生成します。 ~ End If
ボタンを押すと「ファイルを生成します。よろしいですか」というダイアログが表示される。これに「はい」と答えると処理が開始。「いいえ」とすれば終了
fp = CurrentProject.path ~
現在のディレクトリに
CurrentProject.path「ファイル名」という名前をつけて
& "\ファイル名"さらに4桁で年をつけて
& Format(Date, "yyyy")最後に Excel 拡張子をつけて fp に代入
& ".xlsx"
DoCmd.TransferSpreadsheet acExport, ~
Excel に出力
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel12Xml,クエリ Qry から ファイル fp へ
"Qry", fp,1行目に見出しを入れて
True
MsgBox ("ファイルを生成しました。")
処理が完了したらメッセージを表示して終わり
ファイルを選択するスクリプト
どこかからもらってきたスクリプト。中身はよく分かっていない。使いまわしているのでメモ。
Dim fp As String
With Application.FileDialog(msoFileDialogOpen)
.Title = "ファイル選択"
.Filters.Clear
.Filters.Add "Microsoft Office Excelファイル", "*.xlsx"
.FilterIndex = 1
.AllowMultiSelect = False
.InitialFileName = CurrentProject.Path
ret = .Show
If ret <> 0 Then
fp = Trim(.SelectedItems.Item(1))
' ここに処理を書く
Else
fp = "none"
' 選択されなかった場合?
End If
End With