見出し画像

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



いいなと思ったら応援しよう!