accessからエクセルにエクスポートしたファイルを自動で開く方法

このQ&Aのポイント
  • accessからエクセルにエクスポートしたファイルを自動的に開く方法について教えてください。
  • VBAを使用してDoCmd.OutputToを試してみましたが、シートが一つしか出力されませんでした。4枚のシートをエクセルに出力し、自動的に開く方法を知りたいです。
  • DoCmd.TransferSpreadsheetも考えましたが、エクセルを開く方法がわかりません。エクセルに4枚のシートを出力し、それを自動的に開く方法を教えてください。
回答を見る
  • ベストアンサー

accessからエクセルにエクスポートしたファイルを開きたい。

accessのマクロ・ワークシート変換で4枚のシートを含むエクセルファイルを作るように設定をしたのですが、これをエクスポートが終わったら自動的に開くようにしたいのですが、どのようにしたらよいでしょうか。 VBAで DoCmd.OutputTo acOutputTable, "tbl_aaa", acFormatXLS, , True と試してみましたが、シートは一つのみになってしまいます。 1つのエクセルファイルに4枚のシートを出力して、それを立ち上がるようにしたいです。 DoCmd.TransferSpreadsheet acExport, … も考えたのですが、エクセルを開く書き方がわかりません。 よろしくお願いします。

  • konga
  • お礼率93% (45/48)

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

  • ベストアンサー
  • ruru0707
  • ベストアンサー率68% (20/29)
回答No.1

DoCmd.TransferSpreadsheet acExport, … でエクセルを出力する方法がわかるのであれば、後はエクセルの開き方だけですね? エクセルを開くには、まずShellを使ってエクセルを起動させ、目的(出力した)ファイルを開きます。 Shellの前半パスにはエクセルの起動EXEがインストールされている場所を指定します。 (ちなみに私の環境はOS:XP、Office2003。不明な場合は『EXCEL.EXE』を検索で探すと良いでしょう。) 後半は出力したファイルのフルパスを指定します。(例ではDドライブのTempフォルダ内にある『出力エクセル』というファイルを開きます) 前半と後半の間はワンスペース空けて下さい。 ---------------------------------------------------------- Dim エクセルOPEN As Variant エクセルOPEN = Shell("C:\Program Files\Microsoft Office\OFFICE11\EXCEL.EXE D:\temp\出力エクセル.xls")

konga
質問者

お礼

ご回答ありがとうございます。 ファイル名を指定しやってみたらできました! Shell関数を初めて知りました。。 非常に参考になりました。 ありがとうございます。

関連するQ&A

  • ACCESS エクスポートについて

    ACCESSのエクセルへのエクスポートについて お世話になりあます。 既存エクセルにACCESSのDoCmdを使用してエクスポートしようと考えています。 エクスポート先は既存エクセル(セルに数式あり)です。 DoCmd.TransferSpreadsheet acExport, SpreadsheetType, TableName, FileName , True,SheetName という分を作り実行しましたが、「ワークシートのセルが削除できません」と出てしまい エクスポートできません。 ヘルプを見ると数式が含まれていると出来ないと書いてありました。 数式を消さないと出来ないのでしょうか。 お手数ですが、分かる方おられましたら教えて下さい。

  • アクセス2000→エクセル2010へエクスポート

    Private Sub cmd出力ボタン_Click() DoCmd.SetWarnings False DoCmd.TransferSpreadsheet acExport, 8, "出力クエリ", "C:データ.xlsx", True, "" DoCmd.SetWarnings True End Sub 実行すると 外部テーブルのフォーマットが正しくありません と出てしまいます。 エクセル97の形式にエクスポートする際は大丈夫でした。 spreadsheettypeの引数が違うのかとは思いますが適切な数値がわかりません。 他のやり方等もあれば教えて下さい。

  • ACCESS エクスポートしたEXCELが立ち上がらない

    知っている方が居たら教えてください。 DoCmd.TransferSpreadsheet acExport, , QInfo, FileName, True ↑でEXCELにエクスポートしています。 エクスポート処理時に何かEXCELファイルを立ち上げておくと エクスポートしたファイルを自動起動できません。 EXCEL本体、EXCELを起動しない場合は自動起動できるのですが・・・。 そういうものなのでしょうか?

  • AccessからExcelへエクスポートするVBA

    いつもお世話になっております。 AccessのクエリからデータをExcelにエクスポートします。 形式はMicrosoft Excel97-2003です。 フォーム"F_全データ"にボタンを付けて、クリックするとファイル名を自分で付けて保存する。というVBAを作成したいです。 1つ目のVBAは DoCmd.OutputTo acForm, "F6_全データ", "MicrosoftExcelBiff8(*.xls)", "", False, "", 0 これだと、ファイルの種類が、Microsoft Excel5-7になってしまい困ります。 この形式になってしまうと、Excelデータを開くと、文字数が多いところが保存されていません。これだと困ります。 2つ目が DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "F_全データ", "○○○.xls" こちらですと、ファイルの種類は97-2003になりまして、問題はないのですが、ファイル名は自分で指定したいのです。 ご指導よろしくお願いします。

  • Access2000 Export時にシート名を指定したい。

    お世話になります。 Access2000です。 アクセスよりテーブルAをエクセルにエクスポートする時にシート名を指定したいのですがどうすればよいのですか? DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "テーブルA", "E:\", True となっていますが・・・・ よろしくお願いします。

  • Access2000よりエクセルへエクスポートする際の範囲?

    こんばんわ。 最近アクセスを始めたばかりの初心者です。 この度、クエリよりエクセル(Ver.2000)へデータのエクスポートをしたいと思ったのですが、最初の一回目はうまくいくのですが、テストを繰り返すと(恐らくレコードが増えるため)、範囲を拡張することができません、というエラーが出てエクスポートができません。どのように解決したら宜しいのかご教示頂けたらと存じます。今は下位のようにしています。 Docmd.TransferSpreadsheet acexport, 8, "クエリ名","パス\エクセルファイル名", True 宜しくお願い致します。

  • AccessVBA Excelエクスポートについて

    AccessVBA Excelエクスポートで質問です。(DoCmd.TransferSpreadsheet acExport) 既存Excelファイルに名前定義し、そこにVBAを用いてエクスポートをしたいのですが、 名前定義したところにエクスポートされません。 ※PC環境:Win7 Access2007 Excel2007 ※出力されるデータ行は、抽出する際の条件により変動あり <Excel側で設定している名前定義> 名前:Data、範囲:ブック、参照範囲:データ!$B$5:$M$5 <Access VBAで書き込みしている内容> DoCmd.TransferSpreadsheet acExport, 8, "テーブル名","ファイル名", False,"Data" <Access側で実行し、実際にExcelにエクスポートされる1行目の位置> 名前定義したところからエクスポートされず、 名前定義をしているシート、列にはエクスポートされるのですが、データ1行目が名前定義していない箇所で、 シート名:データ B1:M1 が1行目にエクスポートされてしまいます。 今まで作っていたVBAでは、問題なくエクスポートできていたのですが、 現在作成しているものでは、なぜかできなくなってしまいました。 今までが運良く動いていただけでしょうか?→誤っている箇所を教えて下さい。 正しくVBAや名前定義ができているとして、このような現象を回避する術はありますでしょうか? おわかりになる方、どうぞご教示いただけるようよろしくお願い致します。

  • MSアクセス エクセルへのエクスポートについて

    アクセスの初心者です。いろいろ調べてみたのですがわかりません。どうか教えてください。よろしくお願いします。 アクセスのフォームにボタンを作り、そのボタンを押すとエクセルにエクスポートするように設定しました。しかしデータが全てエクスポートされてしまいます。目指しているのは”開いているフォームのデータのみをエクスポートしたい”のです。 フォーム名:申込書 エクスポートしたいフォームのデータ(クエリ)名:申込書 エクスポート先:エクセルc:¥申込書 です。 主キー:申込ID 仮にフォームで申込IDが「3」を開いていれば、その「3」のデータのみをエクスポートするVBAを教えてください。 現在はここまでの段階で止まっています。↓これにプラスする記述で目指すものができればと思います。 DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "申込書", "c:\申込書.xls", True, "" お手数ですがよろしくお願いします。

  • Excelファイル 修復不可能

    Excel側からAccessモジュールを呼び出してExcelへクエリ結果をエクスポートしてますが、そのエクスポートされたファイルをオープンすると頻繁に(5回に1回くらい)「修復不可能」と言う、あのダイアログでメッセージが出ます。同じ条件のDATAでも毎回では無く、普通に成功する時もあります。一連の操作を全てExcel側からvbで行っているので、失敗したり、成功したりで安定せずに困っています。解決方法はあるでしょうか?DATA量はそんなにありません、Sheet数は4Sheetです。 Access側のモジュール varAccess1 = "Q_内容分類集計" varAccess2 = "Q_新旧集計" varAccess3 = "Q_業種別集計" varAccess4 = "Q_業種別新旧集計" varExcelPass1 = "\\Cs0097\63022_cr\顧客対応システム\発表資料取込用.xls" strmsg = "実績を、Excelファイルへ出力します。" & Chr(13) & _ "よろしければ、OKをクリックして下さい。" If MsgBox(strmsg, vbOKCancel) = vbOK Then DoCmd.TransferSpreadsheet acExport, _ acSpreadsheetTypeExcel9, varAccess1, varExcelPass1, True DoCmd.TransferSpreadsheet acExport, _ acSpreadsheetTypeExcel9, varAccess2, varExcelPass1, True DoCmd.TransferSpreadsheet acExport, _ acSpreadsheetTypeExcel9, varAccess3, varExcelPass1, True DoCmd.TransferSpreadsheet acExport, _ acSpreadsheetTypeExcel9, varAccess4, varExcelPass1, True MsgBox """データ出力は、正常に完了しました。""" End If Exit Sub

  • エクセルへのエクスポート

    ACCESS 2003 の VBA で下記の命令を実行してエクセルファイルをエクスポートします。 (環境はSQLserver2008、XP+ACCESS2003+EXCEL2003) DoCmd.OutputTo acOutputStoredProcedure, "テーブル名", acFormatXLS, "C:\ACCESS\テーブル名.xls" (1) 日付型(datetime)のフィールドの表示が「20-Dec-09」となってしまいます。 最初から「2009/11/20」と云う型でエクスポートできないのでしょうか? (2) エクスポートされたファイルを開いて保存するときに 「Excel 5.0/95 ブックです。最新の Excel のファイル形式に更新しますか?」 と表示されます。 (VISTA+Access2003+Excel2007は表示されません) 最初から2003のファイル形式でエクスポートする方法はありませんか?

専門家に質問してみよう