• ベストアンサー

アクセスでエクセルに出力する際のファイル名を日付に

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

質問者が選んだベストアンサー

  • ベストアンサー
  • piroin654
  • ベストアンサー率75% (692/917)
回答No.2

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 などは、コメントアウトするか削除してください。

korozo88
質問者

お礼

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

その他の回答 (2)

  • m3_maki
  • ベストアンサー率64% (296/460)
回答No.3

マクロのアクション 「書式設定を保持したままエクスポート」 で出力している、ということでしょうか? でしたら、引数 「出力ファイル」 のところに = "C:\xxx\○○○\" & Format(Date(),'yyyymmdd') & ".xls" のような感じで行けると思います。

  • piroin654
  • ベストアンサー率75% (692/917)
回答No.1

フォームにボタンを一つ作成して、そのクリック時の イベントで、 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での表示は思うものになっていますか?

関連するQ&A