• ベストアンサー

AccessでExcelのマクロを実行させたい

WinXpでAccess2002を使用しています。 今、Accessのマクロで、ExcelのAファイルを出力させましたが、この後、続けて、以降の処理を行うにはどのように記述すれば良いでしょうか? (1)ExcelのAファイルを開く。 (2)AファイルのマクロA-1を実行させる。

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

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.1

こんばんは。 >ExcelのAファイルを出力させましたが、この後、続けて、以降の処理を行うにはどのように記述すれば良いでしょうか? Aファイルの出力の仕方が、Access マクロで、ブックが開いている状態なら、GetObject を使い、単独で開くなら、CreateObject になります。 Sub AccTestMacro()   Dim xlApp As Object   Dim xlBook As Object   Const MYBOOK As String = "C:\A.xls"   Set xlApp = CreateObject("Excel.Application")   'Set xlApp = GetObject(,"Excel.Application") '開いた状態   Set xlBook = xlApp.Workbooks.Open(MYBOOK)   xlApp.Visible = True   xlApp.Run "'" & MYBOOK & "'!A-1"   'xlBook.Save '変更を加えたのなら、保存する   xlBook.Close False   Set xlApp = Nothing End Sub 後は工夫してください。

kao1031
質問者

お礼

ご丁寧にありがとうございました。

kao1031
質問者

補足

早速ご回答ありがとうございました! ブックが開いた状態から、続けたいので、GetObjectを使うのですね。 ただ、全くの素人なので、再度お聞きしたいのですが、上記のVBAですが、Accessのマクロで、ファイル出力後にビルド記述すると言う事で宜しいでしょうか?申し訳ありませんが宜しくお願いします。

その他の回答 (1)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

こんばんは。Wendy02です。 >ブックが開いた状態から、続けたいので、GetObjectを使うのですね。 Excelのブックが開いた状態なら、GetObjectです。そのほうが確かです。ただし、GetObjectは、ブックが開いていないとエラーが出ますので、以下のようにOn Error トラップします。 そして、例えば、コマンドボタンでしたら、コードビルダで、以下のようになるかと思います。(思い当たる他のエラー処理は、施してありますので、Resume で戻る必要はありません。) Private Sub コマンド1_Click()   Dim xlApp As Object   Dim xlBook As Object   Const MYBOOK As String = "C:\A.xls" 'ブック名   If Dir(MYBOOK) = "" Then MsgBox "ファイルが見つかりません。", 16: Exit Sub   On Error Resume Next   Set xlApp = GetObject(, "EXCEL.Application")   If Err() =429 Then    Set xlApp = CreateObject("Excel.Application")   End If   Set xlBook = xlApp.Workbooks.Open(MYBOOK)   xlApp.Visible = True   xlApp.Run "'" & MYBOOK & "'!A-1"   xlBook.Save '保存する   xlBook.Close False   xlApp.Quit   Set xlBook = Nothing   Set xlApp = Nothing End Sub 適当に加工してください。

kao1031
質問者

お礼

ご丁寧にありがとうございました。 早速やってみます。

関連するQ&A

  • エクセルのマクロからアクセスのマクロ実行命令を出せますか?

    教えてください。 一連の作業をアクセスのマクロとエクセルのマクロを使って作業を完成させました。 まず最初にエクセルのブックを起動し、マクロを実行し作業をさせ、その後にアクセスを起動させ、マクロを実行し、作業ファイルをエキスポートさせ、またエクセルに戻り、エクセルマクロを実行させて作業を関せさせたいと思います。 そこで、エクセルのマクロでアクセスを起動させ、アクセスのマクロを実行させるようなことはできるのでしょうか? よろしくお願いします。

  • Access2000のVBAでエクセルマクロ実行

    お世話になります。 Access2000のVBAでエクセルのマクロとアクセルのマクロを 交互に実行したいと思っております。 (1)エクセルのマクロ1を実行 (2)アクセスのマクロAを実行 (3)エクセルのマクロ2を実行 と交互に実行したいのです。 下記のサイトなどを参考に試みたのですが、 http://www.nurs.or.jp/~ppoy/access/access/acX005.html (1)を実行している途中に (2)が進んでしまいます。 どのようにすれば、(1)が終わってから(2)と、前の処理が 終わってから次の処理に進むことが出来るのでしょうか? Access2000のVBAから指示をかけたいので、 Access2000のVBAのコードで教えて頂ければと 思います。

  • エクセル タスクスケジューラでマクロ自動実行

    お世話になります。 win7/エクセル2010使用です。 エクセルのThisWorkbook_openでマクロを実行するファイルAを作っています。 ※Auto_Openは記述していません。 ファイルAをタスクスケジューラに設定いたしました。 問題なくマクロが自動実行されて、目的は果たしています。 ただ、不思議な点があります。 このファイルAをダブルクリックして開いても マクロは自動実行されていきます。 このファイルAをコピーして、ファイルBを作り それをダブルクリックで開くと、 ファイルBは、ブックが開いた後に、「セキュリティーの警告」がされて マクロの自動実行ができません。 通常は、「セキュリティーの警告」を出さないために Auto_Openなどでコードを記述すると思うのですが、 なぜ、Auto_Openを記述していないファイルAが自動実行されるのかがわかりません。 タスクスケジューラの設定に何か関係はあるのでしょうか? よろしくお願いします。

  • ACCESSからEXCELのマクロを実行

    ACCESSのデータをEXCELに落として、その後、EXCEL上でマクロを実行させたいのですが、可能でしょうか。 ACCESSのVBAでEXCELを操作することができるのは知っているのですが、EXCELの機能のマクロ(罫線を引いたり、始点―終点間に矢印を引いたり)などをしたいのです。 よろしくお願いします。

  • AccessからExcelマクロを実行したい

    Accessから既存のExcelファイルを開き、そのファイル内にある マクロを自動実行させたいと思っています。 Set obj = CreateObject("Excel.Application") obj.Visible = True Set Myobj = obj: Workbooks.Open ("エクセルファイル名(フルパス)") Myobj.Run マクロ名 と書いているのですが、Excelファイルを開くところまでしか動いてくれません。 マクロ名の書き方が悪いのかもしれませんが、VBAに不慣れなため どう直せばよいのかわかりません。 どうかよろしくお願いします。 ちなみに環境はWindows2000、Office2000です。

  • Wordのアドインとマクロ実行について

    Wordのアドインとマクロ実行について Word2003を使用しています。 アドイン用のテンプレートファイルを作成し、アドインの追加まではできました。 アドインで記述したマクロを実行させたいのですが、記述方法がわかりませんでした。 Excelですと「ファイル名!関数名」で呼べるようですが、 Wordの場合、どのように記述すればアドインのマクロ処理を呼ぶことができるのでしょうか? (例.Word文書にボタンを追加してボタンがクリックされたら、アドインのマクロ処理が実行される等 処理をコードで記述したい) ご教授よろしくお願いたします。

  • マクロ実行後エクセルを閉じたい

    2つの別々のファイルを開いて片方からもう片方にコピーして 保存して終了する。(両方とも閉じる) というマクロを作ったのですが コピー終了後に実行したマクロ付きのエクセルも閉じてデスクトップ上には何も開いていない状態にしたいのですがworkbookのところに 下記の命令を記述してもうまくいきません。 Application.Run "XXXXXX" ThisWorkbook.Save ThisWorkbook.Saved = True If Workbooks.Count <= 1 Then Application.Quit ThisWorkbook.Close False マクロ付きのエクセルも一旦は閉じるのですがその後に 別の白紙のブックが開いてしまうのです。 続けて他のマクロをスケジュールで実行したいのですが実行時に 「既にエクセルが開いています」みたいな警告が表示され 実行できません。 エクセルを完全に閉じるようにするにはどうしたらいいのでしょうか?

  • エクセルのマクロで別ファイル(エクセル)のマクロを実行させるには?

    エクセルにおいてマクロを組んでいます. 1.実行させたいマクロAが組んであるファイル(Aファイルとします)が多数あります。またマクロAはモジュール内(Module1)に作っております。 2.1のマクロAを別のエクセルファイル(Bファイルとします)のマクロBで実行させたい. 上記のようなことを行いたいのですが可能でしょうか?さらに言えば、マクロBによってマクロAのプロシージャを指定して実行させることは出来るでしょうか? 現在は、マクロBによってマクロAを組んであるAファイルを開き、Aファイルのマクロの中にファイルを開いたときにマクロAを実行させる(イベントドリブン)ようにしています. 直接、マクロBでAファイルのマクロAを動かせるようになればマクロAにイベントドリブンなコードを組む手間がなくなるので、なんとかそのような事が出来ないでしょうか? どうか、詳しい方ご教授ください。 よろしくお願いいたします。。。

  • Excelマクロについて

    Excelマクロ(VBA)で複数のExcelファイルを一括で処理するプログラムを作っているのですが、処理対象のExcelファイルにはマクロが記述されていて、Excelを開く毎に記述のマクロが動いてしまいます。 対象のExcelファイルをオープンする時に、マクロを無効にして開くすることは可能でしょうか? 今現在、Excelファイル開く時に使ってる命令は、 Workbooks.Open Filenameです。

  • エクセルのマクロを記述したファイルを呼び出して実行

    エクセルのマクロを記述した外部ファイルを作成しておいて メイン(普通)のマクロの実行中にそのファイルを読み込んで、 マクロを実行させることは可能でしょうか? 可能なら方法をお願いします。

専門家に質問してみよう