プロが教えるわが家の防犯対策術!

Access2010でレポートをエクセルに出力しています。
マクロで出力していますが、都度フォルダを選び、ファイル名を入力しなくてはなりません。
フォームのボタンをクリックすれば自動的に出力されるようにしたいのです。
出力先フォルダは決まっています。
ファイル名は当日の年月日で保存したいです。
どのようにすればいいのか教えてください。

A 回答 (3件)

No1です。


同じ名前のファイルが存在した場合の処理を
付加しておきます。それと、一部変更します。



Private Sub コマンド0_Click()
  Dim strReportName As String
  Dim strPath As String
  Dim strFileName As String

  '対象のレポート名
  strReportName = "r1"
  出力先のフォルダ名
  strPath = "C:\Documents and Settings\user\デスクトップ\OKWeb2\登録Web1"
  '出力するExcelのファイル名
  strFileName = strPath & "\" & Format(Date, "yyyy" & "mm" & "dd")

  DoCmd.OpenReport strReportName, acViewPreview
  If MsgBox("レポートをExcelへ転送しますか", vbYesNo) = vbYes Then
    If Dir(strFileName & ".xls") = "" Then
      DoCmd.SetWarnings False
      DoCmd.OutputTo acOutputReport, strReportName, acFormatXLS, strFileName & ".xls", True
      DoCmd.SetWarnings True
    Else
      If MsgBox("同じ名前のファイルがあります。上書きしますか", vbYesNo) = vbYes Then
        DoCmd.SetWarnings False
        DoCmd.OutputTo acOutputReport, strReportName, acFormatXLS, strFileName & ".xls", True
        DoCmd.SetWarnings True
      Else
        DoCmd.Close acReport, strReportName
        Exit Sub
      End If
    End If
  End If
  DoCmd.Close acReport, strReportName
End Sub


なお、レポートをすでに開いている場合には、
コード中の、

DoCmd.OpenReport strReportName, acViewPreview
DoCmd.Close acReport, strReportName

などは、コメントアウトするか削除してください。
    • good
    • 0
この回答へのお礼

思い通りになりました!
本当にありがとうございます!

お礼日時:2014/11/15 00:59

マクロのアクション 「書式設定を保持したままエクスポート」 で出力している、ということでしょうか?



でしたら、引数 「出力ファイル」 のところに

= "C:\xxx\○○○\" & Format(Date(),'yyyymmdd') & ".xls"

のような感じで行けると思います。
    • good
    • 8

フォームにボタンを一つ作成して、そのクリック時の


イベントで、


Private Sub コマンド0_Click()
  Dim strReportName As String
  Dim strPath As String
  Dim strFileName As String

  '対象のレポート名
  strReportName = "r1"
  '出力先のフォルダ名
  strPath = "C:\Documents and Settings\user\デスクトップ\出力先"
  '出力するExcelのファイル名
  strFileName = strPath & "\" & Format(Date, "yyyy" & "mm" & "dd")

  DoCmd.OpenReport strReportName, acViewPreview
  If MsgBox("レポートをExcelへ転送しますか", vbYesNo) = vbYes Then
    DoCmd.OutputTo acOutputReport, strReportName, acFormatXLS, strFileName & ".xls", True
  End If
  DoCmd.Close acReport, "r1"
End Sub


上記の場合、Excelの形式をxlsにしていますが、環境に合わせてacFormatXLS
と、".xls" を変更してください。

しかし、レポートをそのままExcelに出力して出力したときの
Excelでの表示は思うものになっていますか?
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A