- 締切済み
Excelマクロをバックグラウンドで動かす方法
まず現在の状況を説明します。 PCのOS:Windows 7 あるシステムからサーバーにCSVデータを飛ばしています。 そのデータに反応してExcelのマクロが自動起動するようなプログラムをPC上で組んであります。 マクロの内容は、データを読んでプリンターから印刷する というものです。 ここで問題になるのが、データが飛んでくると自動でマクロを起動するので マクロが動いている間は他の操作ができなくなってしまうという点です。(数分程度) Excelを非表示にはしているのですが、裏で動いているので他の操作がフリーズしてしまいます。 マクロ自体は裏で動いているが、それが他の操作に影響しない という方法はありますでしょうか? 何卒宜しくお願い致します。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- WindFaller
- ベストアンサー率57% (465/803)
こんばんは。 >マクロ自体は裏で動いているが、それが他の操作に影響しない という方法はありますでしょうか? オートメーション・オブジェクトにすればいいのでは? この用語で、ググってみてください。 例: http://home.att.ne.jp/zeta/gen/excel/c04p44.htm 私は、タイマーを使って、為替レートの自動読み込みを、Excelをメインで使っている最中に、自動的に起動して、自動的に終了するというコードを使っていました。気をつける点は、ひとつだけ、必ず、オブジェクトを残さないことです。異常終了なんてなると、見えないオブジェクトがのこっているので、手動で、オブジェクトを削除しなければなりません。最初は、タスクマネージャーで確認しながら使ってください。 なお、COMでExcelを使うと、終了方法がややこしくなりますから、辞めたほうがよいです。
- keithin
- ベストアンサー率66% (5278/7941)
「今使ってるエクセルが」動かなくなるご相談と思いました。 どこが(何が)問題なのか絞り込まれていないので,あてずっぽで思いつきを並べるしかありませんね。 >プリンタがネックかも 「印字する」の部分を全てコメントアウトして実行してみて,問題が解消されるようなら確かにそうかもしれません。 ほかにも例えば,「CSVを読み込む」で止まってるのかもしれません。印刷用に何か作成している作業が問題なのかもしれません。 具体的にどんなマクロを動かしている(細かくどんな処理を積み上げている)のかを一つずつ潰して,実際にどの部分で「動かなくなる」のか解明してから,改めて対応策をご相談投稿なさってみてください。
- keithin
- ベストアンサー率66% (5278/7941)
>そのデータに反応してExcelのマクロが自動起動するようなプログラムをPC上で組んであります。 これをどのように実現しているのかはご質問の範疇じゃありませんが,この部分を細工して「マクロを含んだブックを開いてマクロを動かす」んじゃなく,「エクセルを起動して所定のマクロを実行する」ように仕込みます。 例: excel.exeのショートカットを用意,所定のブックを同時に開かせるようにして,当該ブックにWorkbook_Openマクロを付けておく http://office.microsoft.com/ja-jp/excel-help/HA010158030.aspx 既存の(今使ってる最中の)エクセルとは別のエクセルが起動するので,作業中のエクセルは影響を受けません。必要に応じて/eオプションを併用するなど。また自動起動マクロには,最後にはapplcationをquitするように仕込んでおきます
補足
説明が足りずに申し訳ありません。 すでにそのようになっており、新規でExcelが開きます。 ここで言う他の操作というのは、例えばブラウザ操作であったり、他のアプリの操作まで固まってしまうのです。 恐らく連続でいくつもの印刷処理をするので、プリンタードライバーとのやりとりがネックになっているのかもしれません。