- ベストアンサー
プログラミング言語の選択
プログラム初心者です。 Window上で動くアプリケーションを自分の作ったプログラムで、制御したいと思います。 例えば、Outlook Expressを一時間毎にチェックし、受信したメールに対しそれぞれの送信者に対応したメッセージを送信したりするといった具合です。 初心者の私が組めるかどうかはとりあえずおいておいて、上記のようなプログラムを組む場合に適した言語を教えていただければと思います。具体的に理由も書いていただけるとあいがたいです。 よろしくお願いします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
>VBAで外部のプログラムが監視、制御できるかどうか 監視と制御というのがどういうことかわかりませんが 今起動しているアプリケーションの一覧を得るには http://officetanaka.net/excel/vba/tips/tips61.htm にありました。 ほかのアプリケーションを起動するには http://www.moug.net/tech/exvba/0100034.htm にありました。 しかし、ほかのアプリを起動した後に操作するには それぞれのアプリケーションによるので それからは 本当に力技になります。 Office製品、windows関連ならば それぞれのVBAあるいはWHSなどを駆使して可能ではあります。 実例ですが エクセルからアクセスのデータテーブルに追加、変更、削除 VBSを使って IEを制御して Webで自動でログイン エクセルからOutLookを使って 自動でメールを送信 などを行ったことがあります。 そのほか OutLookであれば イベントに 新しいメールの受信があったら実行 とかありますので それを活用するなどを検討されたほうが良いと思います。 どの言語が良いとかでなく、一つづつケースバイケースで解決していく方法になると思いますが。
その他の回答 (3)
- hallo-2007
- ベストアンサー率41% (888/2115)
>Outlook Expressを一時間毎にチェックし、受信したメールに対しそれぞれの送信者に対応した >メッセージを送信したりするといった具合です。 OutLook Express でなく MS-OutLook を使うとVBAという機能が簡単に使えます。 ちょっと検索しただけでも http://www.shoeisha.com/book/hp/pc/office/Outlook/files/text5.html にご希望のサンプルコードがありました。 もう少し凝ったプログラムですと BASP21 で検索してみてください。 http://officetanaka.net/excel/vba/tips/tips46.htm には 受信した内容をエクセルファイルにデータとして保存していくコードがありました。 >プログラム初心者です。 ということですが、いくつかの言語は勉強されたことはありますでしょうか? まったく最初の言語といわれるのであれば VBAを一度勉強されることをお勧めします。 理由は、勉強のためのサイトや実例がサイトでたくさん紹介されているからです。
お礼
ご回答ありがとうございます。 申し訳ありません、No2さんのお礼に詳しく書いたのですが例え話は私のやりたいことの一部でした。複数のアプリを同時に監視、制御したいと考えています。 プログラム経験はCの基礎を学び、ちょっとしたプログラムを組んだ程度です。VBAはまるっきりの独学でエクセル内で少し活用しています。 お時間ありましたら、VBAで外部のプログラムが監視、制御できるかどうか教えていただけますか?お願いします。
そんなに難しいことを考えなくとも、JscriptかVBScript + Windows Script Host(WSH)あたりでできそうな気がします。要するに、メールボックスをチェックし、新しいメールがあったらそれに応じてメールを送信すればいいのですよね? なんとかなりそうな気もします。 WSHでメールの送信・受信をする参考例は、さがすといろいろ見つかりますよ。 http://www.atmarkit.co.jp/fwin2k/win2ktips/428wshmail/wshmail.html http://d.hatena.ne.jp/Wacky/20061009/1160379207
お礼
迅速なご回答ありがとうございます。 説明不足な点があり申し訳ないのですが、質問の例えだけでなくメールソフト以外の複数のアプリを同時に監視、制御もやりたいと考えております。 よくネットで調べ物をするのですが、自分が画面を見て反応しマウスをクリックしたりキーを叩いたりする一連の行動が、ワンパターンに近い行動だと気がつきました。 それでプログラムによって自動化し作業効率を上げられないかと考えました。 教えていただいたScriptは一読してみたいと思います。ありがとうございました。
他のアプリケーションを制御する方法はいろいろあると思いますが、やはり力業という点ではマウスやキーボードを制御して実際にアプリケーションをクリックしたりメニューを操作する事になるでしょうね。 エレガントとは言えませんが、ある意味Windows らしいともいえます。 でお奨めの言語となるとマウスイベントやキーボードイベントを扱う点からC++やC#となるでしょう。最近は.Net を使いますから、もっとも実装が容易となるC#ですかねぇ。似たようなソフトをいくつか作った事がありますので。 #ただ・・・Thunderbird のメッセージフィルタで上記の処理はやれてしまいますけどね。 メールクライアントを自前で実装する方がラクかもしれません(未確認)。メールサーバーサイドで実装すべき機能という気もしますし・・・。
お礼
迅速なご回答ありがとうございます。まだ初心者ゆえに全てを理解できませんが調べながら参考にさせていただきたいと思います。 もしまたお時間があれば教えていただきたいのですが、他のプログラムの監視もC#では可能なのでしょうか?お願いします。
お礼
メインでやりたかったことがエクセルのデータから参照してIEで検索、検索した結果をまたエクセルに記録するという作業でしたので、教えていただいた回答はとても参考になりました、ありがとうございました。