• 締切済み

Excelマクロをバックグラウンドで動かす方法

まず現在の状況を説明します。 PCのOS:Windows 7 あるシステムからサーバーにCSVデータを飛ばしています。 そのデータに反応してExcelのマクロが自動起動するようなプログラムをPC上で組んであります。 マクロの内容は、データを読んでプリンターから印刷する というものです。 ここで問題になるのが、データが飛んでくると自動でマクロを起動するので マクロが動いている間は他の操作ができなくなってしまうという点です。(数分程度) Excelを非表示にはしているのですが、裏で動いているので他の操作がフリーズしてしまいます。 マクロ自体は裏で動いているが、それが他の操作に影響しない という方法はありますでしょうか? 何卒宜しくお願い致します。

みんなの回答

回答No.3

こんばんは。 >マクロ自体は裏で動いているが、それが他の操作に影響しない という方法はありますでしょうか? オートメーション・オブジェクトにすればいいのでは? この用語で、ググってみてください。 例: http://home.att.ne.jp/zeta/gen/excel/c04p44.htm 私は、タイマーを使って、為替レートの自動読み込みを、Excelをメインで使っている最中に、自動的に起動して、自動的に終了するというコードを使っていました。気をつける点は、ひとつだけ、必ず、オブジェクトを残さないことです。異常終了なんてなると、見えないオブジェクトがのこっているので、手動で、オブジェクトを削除しなければなりません。最初は、タスクマネージャーで確認しながら使ってください。 なお、COMでExcelを使うと、終了方法がややこしくなりますから、辞めたほうがよいです。

全文を見る
すると、全ての回答が全文表示されます。
  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.2

「今使ってるエクセルが」動かなくなるご相談と思いました。 どこが(何が)問題なのか絞り込まれていないので,あてずっぽで思いつきを並べるしかありませんね。 >プリンタがネックかも 「印字する」の部分を全てコメントアウトして実行してみて,問題が解消されるようなら確かにそうかもしれません。 ほかにも例えば,「CSVを読み込む」で止まってるのかもしれません。印刷用に何か作成している作業が問題なのかもしれません。 具体的にどんなマクロを動かしている(細かくどんな処理を積み上げている)のかを一つずつ潰して,実際にどの部分で「動かなくなる」のか解明してから,改めて対応策をご相談投稿なさってみてください。

全文を見る
すると、全ての回答が全文表示されます。
  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.1

>そのデータに反応してExcelのマクロが自動起動するようなプログラムをPC上で組んであります。 これをどのように実現しているのかはご質問の範疇じゃありませんが,この部分を細工して「マクロを含んだブックを開いてマクロを動かす」んじゃなく,「エクセルを起動して所定のマクロを実行する」ように仕込みます。 例: excel.exeのショートカットを用意,所定のブックを同時に開かせるようにして,当該ブックにWorkbook_Openマクロを付けておく http://office.microsoft.com/ja-jp/excel-help/HA010158030.aspx 既存の(今使ってる最中の)エクセルとは別のエクセルが起動するので,作業中のエクセルは影響を受けません。必要に応じて/eオプションを併用するなど。また自動起動マクロには,最後にはapplcationをquitするように仕込んでおきます

nekko-0414
質問者

補足

説明が足りずに申し訳ありません。 すでにそのようになっており、新規でExcelが開きます。 ここで言う他の操作というのは、例えばブラウザ操作であったり、他のアプリの操作まで固まってしまうのです。 恐らく連続でいくつもの印刷処理をするので、プリンタードライバーとのやりとりがネックになっているのかもしれません。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • エクセルマクロについて

    いつもお世話になっております。 エクセルのマクロについて質問させていただきます。 仕事上測定した10回データを、エクセルで計算させ平均やσ出すという処理を毎回しているのですが、測定したデータというのが、csvファイルで10個できあがり、それを一つずつ開いては貼っての繰り返しをしています。 この作業をマクロで自動的に出来ないものかと思い質問させていただきました。 装置によって毎回.csvの前のファイル名が変る恐れがあるので、csvファイルの入っているフォルダ(ディレクトリを指定)を指定し、その中にあるcsvファイルを自動的に貼る事が出来る事が理想です。 VBAではこのような処理のサンプルプログラムがあるのですが、VBAはあまり解らないので出来ればマクロの記録からできればと思います。 宜しくお願い致します。

  • エクセルのマクロの操作を記録するについて教えて下さい。

    エクセルのマクロの操作を記録するについて教えて下さい。 マクロ・VBAを勉強しはじめた超初心者です。 毎日、CSVの新しいデータを取得します。 その中で、列の並び変えや文字の太さ、ここは¥マークをつけたい など編集したい事があるのですが、 それを毎日していると時間がかかってしまうので自動化したいので マクロというものを知りました。 実際に、新しいCSVファイルを開いて、 マクロの記憶→上記の編集操作→マクロ記憶終了→保存 とすると、行った動作ではなく、 今現に表示されているCSVの文字データも記憶されてしまいますよね?? 行った動作(列の並び変えや書式変更、関数入力)という行動”だけ”を 自動化するにはどうしたら良いのでしょうか? 毎日取得するCSVデータは 列の項目は一緒ですが、その中で数字や住所が違うデータです。 分かりにくい文章で申し訳ありませんが よろしくお願い致します。

  • エクセルマクロ

    やりたいことは、毎回更新されて開くエクセルCSVの画面で、自分仕様にマクロの記録を行い、(枠固定や、セルの幅変更、色を付けておいたり)、そして再度 更新されたエクセルCSV画面がを開かれたときに、前回記録したマクロ設定された状態で開きたい。 現在は、CSVファイルが開かれると、自分の見やすいように操作して見ているのですが、これをいったん閉じて(毎回更新される内容なので保存しないで閉じています) またCSVファイルを開くとき繰り返し自分の見やすいように操作してから見ていますが、この見やすいようにする操作を毎回行わず設定するやり方を教えてください。 パソコンは詳しくないです、プログラムみたいな画面はさっぱりわかりません。 ちなみに、毎回更新されて開くCSVエクセルファイルは、フィルター選択で自分の見たい部分を選択して見ています。 職場で使用しているのでなるべくはやく解決したいです。

  • Excel 2007 で マクロを有効にするには?

    初めまして Excel 2007 で「・・・マクロが無効になっている可能性があります」 とコメントが出て CSVデータをExcelデータに変換できないのですが どのようにすれば マクロを有効にできるのでしょうか? どうか ご教授ください

  • Excelマクロをwscriptなどで起動したいのですが

    はじめまして。当方、Excelマクロもwscriptも初心者で現在、マクロでできたプログラムを修正するというタスクを与えられているのですが、以下のようなことで困っています。 現在、サーバー上にある\\TEST\200904\a.csvというファイルと1年前のファイル\\TEST\200804\a.csvというファイルをApplication.GetOpenFilename()で指定してもらい、読み込んでマクロが動いているのですが、これをwscriptなどのinputboxに「200904」と入力するだけでこれらのファイルを読み込んで自動的にマクロを動かすということは可能でしょうか?また、wscript、マクロをどのように作成すれば可能でしょうか?ご教授お願い致します。

  • 別のアプリケーションとエクセルマクロについて

    エクセルとは別のアプリケーションのデータの文字をコピーして エクセルのシートのある決まった位置に張り付ける、ということを 簡単に行いたいのですが、(マクロ的にボタン一つとか) どういった方法がありますか? エクセルのVBAマクロは作っていますが、 別のアプリからデータをコピーして持ってくるというのは、できないですよね。 (csvとかに落とすこともできないデータです。) 別のアプリの文字をコピーする段階で、VBAでは無理だと思うので、 他のプログラム言語だと、そういうことができますか? C言語は少し習いましたが、何か最適な方法や、 このプログラム言語だと、簡単にできるというのがあれば、教えてください。 よろしくお願いいたします。

  • エクセル マクロでのエクセルファイル取込について

    エクセルで別のエクセルファイルをマクロで取込み、取込したデータを自動で任意の場所にデータが入力されるようなものを作りたいと考えています。 csvデータの取込は作ることが出来たのですが、エクセルファイルをcsvデータのように取込することは出来ないでしょうか? 出来ないとしたら、取込したいエクセルファイルを一度csvで保存してからcsvとして取込するというやり方で対応するしかないでしょうか? 出来れば、取込したいエクセルファイルのシートが複数にわかれていて、全シートの情報を取込したいと考えているので、エクセルのままで全シート取り込めれば・・と思います。 何か上記の方法でなくとも、最善の方法(一番工数が少なく済む方法)があれば教えていただきたいです。 よろしくお願いします。

  • エクセルのマクロ

    こんにちは。 今悩んでいます。 VB6.0で、電圧計、電流計を制御して、VBからエクセルを起動、その値をVBでエクセルにデータを送り、グラフを作るのですが。 グラフを作る作業が、同じ作業なので、エクセルのマクロを使い、グラフを作成しようとしていたのですが・・・。 どのエクセルのファイルからでもできるように、個人用のマクロブックで、グラフを作成したのですが、VBからエクセルを起動し、データの転送して、グラフをマクロで作成しようと思ったら、マクロがないんです。 しかし、デスクトップにあるエクセルのショートカットから起動してみると、マクロがあるのです。 VBから起動したエクセルでは、マクロは使えないんでしょうか? 詳しい方よろしくお願いします。

  • WordやExcelのマクロで

    WordやExcelでマクロってありますよね? 僕はそのマクロでプログラムを作りたいと思っています。 ですが、マクロを開いた途端に、操作の仕方が分からなかったので、どなたかマクロでプログラムを作る方法を教えてください。

  • エクセルマクロの質問です。

    例えば、A.xlsというファイルに01.csv,02.csv,・・・,20.csvといういくつかのファイルからデータを取り出すのですが、A.xlsのシート1の1列目に01.csvの1列目を貼り付けて、01.csvの2列目はA.xlsのシート2の1列目に貼り付けるようにシートをずらして行って、02.csvの1列目はA.xlsのシート1の2列目、02.csvの2列目はA.xlsのシート2の2列目というようにしたいのですが、どのようなプログラムがよいのでしょうか? エクセルマクロ初心者なので説明が不十分かも知れませんがよろしくお願いします。

専門家に質問してみよう