ACCESS→Excelのエクスポート(マクロ)で教えて下さい。

このQ&Aのポイント
  • ACCESS2000、WindowsXPの環境で、テーブルをExcelへエクスポートするマクロを作成したいです。
  • マクロ実行後に「エクスポートしますか?」「OK/キャンセルボタン」ウインドウを出したいです。
  • エクスポートファイルの保存場所を一定の場所に指定したいです。
回答を見る
  • ベストアンサー

●ACCESS→Excelのエクスポート(マクロ)で教えて下さい。

ACCESS2000、WindowsXPです。 テーブルをExcelへエクスポートするマクロを作りましが、 下記で苦労しています。 (1)マクロ実行してから「エクスポートしますか?」「OK/キャンセルボタン」ウインドウを出したい。 (2)保存場所を一定の場所に指定したい。 数人で使用する為、該当ACCESSファイルが置いてあるネットワーク上の フォルダ(\\Central-server\public)に指定してみましたが、ファイルを移動した際等に、 パスが変わってしまうので一定の場所に設定したいです。 →各々のPCの「デスクトップ」or「該当ACCESSといつも同じフォルダ」 今のところ、下記のように設定してます。 【作成したマクロ】 ◆アクション1→ワークシート変換 ・変換の種類:エクスポート ・ワークシートの種類:Microsoft Excel8-9 ・テーブル名:BE ・ファイル名: ="C:\Documents and Settings\User\デスクトップ\BE_" & Format(Now(),"yymmdd_hhnnss") & ".xls" もしくは、 ="\\Central-server\public\BE_" & Format(Now(),"yymmdd_hhnnss") & ".xls" ◆アクション2→メッセージボックス ・「エクスポート完了しました。」→OKしか出ない。 どなたかご教授頂けないでしょうか。 宜しくお願いいたします。

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

  • ベストアンサー
回答No.1

コマンドボタンにのイベントにイベントプロシージャを入れて VBAを記述するのではだめですか? YYMMDD00_ファイル名.xls と言うファイル名でデスクトップに エクスポートします。 同日にエクスポートすれば01 02とカウントアップしていきます。 Private Sub Excel出力_Click() On Error GoTo Err_Excel出力_Click Dim newFile As Double 'Excelファイル名YYYYMMDD+連番2桁(数値) Dim strPath As String '作成するファイル名YYMMDD連番ファイル名(文字列) Dim srchXls As String '作成するフルパス newFile = Val(Format(Date, "yyyymmdd") & Format(0, "00")) 'newFileをYYYYMMDD00とする Do newFile = newFile + 1 'newFileの00部分に+1 strPath = Mid(newFile, 3, 6) & "_" & Right(newFile, 2) & "_Excelファイル名.xls" 'YYMMDD_00_ファイル名+拡張子 srchXls = CreateObject("WScript.Shell").SpecialFolders("desktop") & "\" & strPath 'デスクトップを取得してフルパスをセット Loop Until strPath <> Dir(srchXls, vbNormal) 'Dir検索で 指定したファイル名があればループから抜ける Select Case MsgBox(srchXls & "を作成しますか?", vbOKCancel) 'MsgBoxでファイル作成のOKCancel確認OKの場合ファイル作成 Case vbOK DoCmd.TransferSpreadsheet acExport, , "エクスポートするクエリ名", srchXls, True 'OKの場合指定したフルパスでエクスポート MsgBox (srchXls & Chr(13) & Chr(10) & "が作成されました") '完了メッセージ OKしか表示されない Shell "Excel.exe " & Chr(&H22) & srchXls & Chr(&H22), vbNormalFocus 'Shellで作成したExcelを起動 Case Else Exit Sub 'Cancelの場合Subプロシージャから抜ける End Select Exit_Excel出力_Click: Exit Sub Err_Excel出力_Click: MsgBox Err.Number & Err.Description Resume Exit_Excel出力_Click End Sub

du-sama
質問者

お礼

度々すみません。 式がやっと読めてきました(汗) 下記で成功しました。 ありがとうございました!!! --- Private Sub Excel出力_Click() On Error GoTo Err_Excel出力_Click Dim newFile As Double Dim strPath As String Dim srchXls As String newFile = Val(Format(Date, "yyyymmdd") & Format(0, "00")) Do newFile = newFile + 1 strPath = "BE_" & Mid(newFile, 3, 6) & "_" & Right(newFile, 2) & ".xls" srchXls = CreateObject("WScript.Shell").SpecialFolders("desktop") & "\" & strPath Loop Until strPath <> Dir(srchXls, vbNormal) Select Case MsgBox(srchXls & "を作成しますか?", vbOKCancel) Case vbOK DoCmd.TransferSpreadsheet acExport, , "BE", srchXls, True MsgBox (srchXls & Chr(13) & Chr(10) & "を作成しました。") Case Else Exit Sub End Select Exit_Excel出力_Click: Exit Sub Err_Excel出力_Click: MsgBox Err.Number & Err.Description Resume Exit_Excel出力_Click End Sub

du-sama
質問者

補足

すすすすすみません。 とりあえず自分流に編集してみたんですが、コンパイルエラーです。 ボタンの名前と課題を"Excel出力"にし、クリック時のイベントプロシージャに下記をコピーしました。 1行目が黄色く、End Subが青く反転してます。 添削できますでしょうか。 宜しくお願いいたします。 --- Private Sub Excel出力_Click() On Error GoTo Err_Excel出力_Click Dim newFile As Double Dim strPath As String Dim srchXls As String newFile = Val("BE_" & Format(Now(), "yymmdd_hhnnss") & ".xls") Do srchXls = CreateObject("WScript.Shell").SpecialFolders("desktop") & "\" & strPath Select Case MsgBox("ファイルを作成しますか?", vbOKCancel) Case vbOK DoCmd.TransferSpreadsheet acExport, , "BE", srchXls, True MsgBox ("デスクトップにファイルが作成されました") Case Else Exit Sub End Select Exit_Excel出力_Click: Exit Sub Err_Excel出力_Click: MsgBox Err.Number & Err.Description Resume Exit_Excel出力_Click End Sub

関連するQ&A

  • 【Access VBA】クエリ・テーブルのエクスポートについて

    MSOffice2003を使用しています。 マクロにてクエリやテーブルをエクスポートする際、 ------------------------------------------- アクション名:ワークシート変換 変換の種類:エクスポート ワークシートの種類:Microsoft Excel 3 テーブル名:クエリQ(クエリ及びテーブル名) ファイル名:C:\XXXX.XLS ------------------------------------------- としています。 今回、ファイル名(エクスポート先のファイル)に変数を使用したく、 VBAでのコーディングが必要と考えています。 ファイル名は、XXXX_yyyymmdd.XLS(yyyymmddは処理日付)にしたいのです。 この場合、どうコーディングすればよろしいでしょうか?

  • マクロでエクスポート(アクセス97)

    W2000・アクセス97・エクセル2000です。 アクセスのクエリーを、マクロを使用して、新規にエクセルにエクスポートしたいです。 マクロでは、 ・変換の種類 エクスポート ・ワークシートの種類 Excel97(2000は選択の中になし) ・テーブル名 エクスポートしたいクエリーを指定 ここまでは、わかりましたが、ここまででマクロを実行すると、 ”このアクションまたはメゾットを実行するには、[file name/ファイル名]が必要です” と、表示され、エラーになります。 できましたら、この後、どのようにすればよいのか? もしくは、こういう方法で、というのがありましたら、お教えくださいませ。詳しく解説してくれている、URLのご紹介でも、かまいません。 お手数ですが、どなたか、よろしくお願い申し上げます。

  • Accessマクロでのエクスポート

    Accessマクロで「書式設定を保持したままエクスポート」を使用し、テーブルをExcelにエクスポートしています。 終了時に、正常終了メッセージを出力していますが、エクスポート時のファイル選択ダイアログで「キャンセル」を押下した際も、この終了メッセージが出力されてしまいます。 マクロのアクションカタログにて、「ファイル選択ダイアログでキャンセルが押されたか?」を判定することはできますでしょうか?

  • AccessのテーブルデータをExcelの特定のワークシート名にエクスポートすることは可能ですか

    AccessのテーブルデータをExcelにエクスポートするようマクロを設定しているのですが、そのファイルの中の特定のシートにエクスポートすることは可能ですか?1つのExcelファイルの中で、エクスポートするテーブルを分けたいのです。 マクロですと、"ワークシート変換"アクションの引数[ファイル名]欄で何か設定するのでしょうか? それともAccessから直接は無理なので、Excelのマクロで自動化したほうがよろしいのでしょうか?教えてください。

  • Accessのクエリをマクロでエクスポートしたい

    Access2002を使っています。 マクロでクエリをExcelファイルにエクスポートしたいのですが、どうしたらいいかわかりません。 「ワークシート変換」を選択してもテーブルしか選べないので・・・ ご存知の方、どうぞ優しくご教授ください~

  • アクセス2007 エクセルへエクスポートするファイル名に日付を付けたい

    こんにちは。 アクセス2007を使用しています。 テーブルをエクセルにエクスポートし、 さらにそのファイル名に日付をつけたいのですが なかなかうまくいきません。 以下のように記述しました。 Private Sub コマンドボタン_Click() 'Excelファイルへエクスポート DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "テーブル名", "転送先フォルダパス" & Format(Now(), "yyyymmdd") & ".xls" End Sub Format関数を入れないとうまく行くので その部分が間違っているのだろうと思うのですが どうしていいのかわかりません。 どなたか原因をご教授いただけると助かります。 よろしくお願いいたします。

  • Access2007のエキスポートについて

    Access2007でマクロを使ってExcel2007のファイル(xlsx)形式へエキスポートします。その際、 ・「ワークシート変換」を指定 ・ワークシートの種類に「Excel Work book」 ・出力ファイルパスに「(絶対パス)\(ファイル名).xlsx」 としました。 既にAccess2007のテーブルには、65535行を超える200000行のレコードが入っていることが確認できてます。 マクロを実行すると、「指定範囲を広げることができません」とダイアログが出てしまい、マクロが中断し、異常終了してしまいます。 windowsXP SP2 pentium4を使用。 異常終了せず、全レコードをファイルにエキスポートする方法はありませんか? 宜しくおねがいいたします。

  • アクセス2000のマクロの設定について

    アクセスのマクロで、アクセスのデータベースを、指定したエクセルファイル内の、指定したシートにエクスポートするマクロ設定をしたいのですが、よく判りません。 マクロ設定で、アクションのワークシート設定を選ぶまでは判ったのですが、テーブル名、ファイル名、フィールド名の設定、範囲の設定の意味が判りません(ヘルプを見たのですが、理解出来ません)。どなたか設定方法を教えて下さい。

  • AccessでXLSにファイルをエクスポート

    Accessクエリ及びVBAを実行してXLSにファイルをエクスポート 環境 Windows Vista Access2007 質問 以下のような作業をマクロかVBAで自動化したいと考えています。 マクロまたはVBAでどのように設定すればよいかお手数をかけて恐れいりますが ご教示いただければ幸いです。 ★使用するテーブル 50テーブル 50のテーブルから店名を条件に該当するテーブルを一覧表をテーブル作成 クエリで作成済み テーブル一覧表 (例) テーブル名     店名        件数 テーブル1     三鷹店         1 テーブル2     三鷹店         2 テーブル3     吉祥寺店        4 テーブル4     吉祥寺店        5 テーブル5     立川店         2 テーブル6     立川店         3 テーブル7     立川店         2 テーブル8     荻窪店         1 ★自動化したい手順 1 条件の店名が”三鷹店”で該当する各テーブルをxlsのシートごとにエクスポート (xlsのファイル名は三鷹店) 2 条件の店名が”吉祥寺店”で該当する各テーブルをxlsのシートごとにエクスポート (xlsのファイル名は吉祥寺店) 3 条件の店名が一覧表からなくなったら終了 ★補足 DoCmd.TransferSpreadsheetを使用してなんとかならないかと試行錯誤したのですが Table NameでSQLステートメントを使用してエクスポートするデータを指定することが できないため苦戦しています。VBAの知識はあまりありませんが、教えていただければ 自分で調べながら試してみますのでよろしくお願いします。 

  • Excelマクロで年度別にフォルダ作成したい。

     Excel2003です。  日々の売り上げ集計ファイルをボタン一つで保存していくマクロを作っています。 Application.DisplayAlerts = False If Dir(ThisWorkbook.Path & "\" & Format(Date, "yy") & "年集計", vbDirectory) = "" Then MkDir Path:=ThisWorkbook.Path & "\" & Format(Date, "yy") & "年集計" ActiveWorkbook.SaveAs Filename:=ThisWorkbook.Path & "\" & Format(Date, "yy") & "年集計\" & Format(Date, "yymmdd") & ".xls", FileFormat:=xlNormal, _ Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _ CreateBackup:=False Else ActiveWorkbook.SaveAs Filename:=ThisWorkbook.Path & "\" & Format(Date, "yy") & "年集計\" & Format(Date, "yymmdd") & ".xls", FileFormat:=xlNormal, _ Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _ CreateBackup:=False  とりあえず指定のフォルダに「yymmdd.xls」という名前をつけて保存、もしフォルダがなければ作るというところまで作れました。そこで、今度は「**年度」というフォルダに自動的に保存され、もし「**年度」というフォルダがなければ作るようにしたいのです。上に上げたマクロでは「**年」というフォルダを作ってその中に保存というところまでは出来ているのですが……。とにかく年度で分ける場合の処理がよくわかりません。  回答よろしくお願いします。

専門家に質問してみよう