dポイントプレゼントキャンペーン実施中!

いつもお世話になっております。
Visual BasicでIE上のJavaアプレットのボタンやドロップダウンリストを操作することはできないでしょうか。JavaアプレットのActiveXオブジェクトのメソッドやプロパティが分かればできるような気がするのですが、どのように調べればいいのかも分かりません。
よろしくお願いいたします。

A 回答 (4件)

>Visual Basicと書いた方がより広範な意見が聞けると判断したためです



VBが全部、VBAやVB6以前の作りになっているわけじゃない
(VB.NETでは作りがまったく違います)ので、
バージョンをお聞きしました。

ということで、今回は、VBA(VB6以前)の話を前提ということでご回答いたします。

>「HTML要素へのアクセス#3 (APPLETオブジェクト)」を見たからです。

できると思います。
というのもExcel VBAではわかりませんが、VB6でブラウザコントロール
(もしくは、IEコンポーネントという言い方をしますが)を
使えば、HTMLのエレメントの中や貼り付けられている画像、JavaApplet
なども参照可能だからです。

# IEコンポーネントをCreateObjectして、
  その中にあるJavaAppletのHTML要素を取得すれば、
  VBAでもできると思います。(試していないので自信はないです)

http://www.roy.hi-ho.ne.jp/mutaguchi/wsh/techinf …
OLE/COM Object Viewerは使っていません。

OLE/COM Object Viewerを使っていない理由は、タイプライブラリを
使いたくなかったからということでしょうか?
タイプライブラリを生成させてやった方が、VB上のコーディングは
確かに楽ですが、
http://www.roy.hi-ho.ne.jp/mutaguchi/wsh/techinf …
を試してみようとした意図が良くわからないのですが...

ということで、少しまとめると、

・IEコンポーネントまたは、ブラウザコントロールを使って、
 JavaAppletが定義されている要素を探す処理を作る

 例えは違いますが、
 http://oshiete1.goo.ne.jp/kotaeru.php3?qid=1519932
 あたりが似たようなことやっているので、参考になるのではと
 思います。
 (気になるのは、VB.NETの例になっていることですね。
 ただ、スレ主が納得しているようなので、ある程度参考になる
 んじゃないかと思います)

・JavaAppletの中にあるコントロールを動かすためには、
 JavaAppletで公開されているパラメータがあるはずなので、
 そのパラメータをブラウザ内から、JavaApplet用HTML要素を
 取得&設定して、JavaAppletを操作する

で、実装できないかという感じになります。

あまり自信がないので、参考になるかわかりませんが、
ある程度、ヒントになれば幸いです。

この回答への補足

VBAでIEや外部プログラムを制御する方法を勉強するのにちょうど良いサイトや書籍をご存じでしたら紹介していただけないでしょうか。

補足日時:2007/08/23 10:47
    • good
    • 0
この回答へのお礼

kero_mio様、ご回答ありがとうございます。
お礼が遅くなり申し訳ありませんでした。

上記の内容を吟味してから、再度質問なりお礼をしようと思っていたのですが、私の力では時間がかかってしまいそうなので、取り急ぎお礼をさせていただいた次第です。

>・IEコンポーネントまたは、ブラウザコントロールを使って、
  JavaAppletが定義されている要素を探す処理を作る
>・JavaAppletの中にあるコントロールを動かすためには、
  JavaAppletで公開されているパラメータがあるはずなので、
  そのパラメータをブラウザ内から、JavaApplet用HTML要素を
  取得&設定して、JavaAppletを操作する

この方法を自分で調査してみます。行き詰まったらまた質問をさせていただきますのでよろしくお願いします。

お礼日時:2007/08/23 10:47

よくわかりませんが、、


JAVAアプレットはActiveXではない(少なくともActiveXオブジェクト名は表に出ない)です。
また、Javaアプレットで操作できるのは、publicメソッドやpublicメンバだけです。
例えばbutton1というボタンがあったとしても、これがpublicでなければ外部からアクセスできません。
というか、どうやってJAVAのクラスメソッド名などを知るつもりですか?
JARファイルからJAVAクラスを抜き出して、それを逆コンパイルするのでしょうか?
余り一般的ではないですし、著作物人格権的にちょっとグレーです。
※リバースエンジニアリングの禁止

じゃあ、できないのか?
っていうと、ActiveXとしての操作はできませんが、別のアプローチでできます。
それは、WindowsAPIを使って、画面上の全てのオブジェクトの情報を取得して、手でマウスを使ってクリックするように、ボタンを無理やりWindowsに押させる方法です。
市販されているソフトでは、自動試験ソフトがそれにあたります。

この回答への補足

PED02744様、回答ありがとうございます。

これまで頂いた回答で私は、自分の力ではどうにもならないことをやろうとしていると知らされたようです。

>それは、WindowsAPIを使って、画面上の全てのオブジェクトの情報を取得して、手でマウスを使ってクリックするように、ボタンを無理やりWindowsに押させる方法です。

初歩的な質問ばかりで恐縮ですが、WindowsAPIってどうやって使うんですか。アプリケーション同士をつなぐ関数が集められたものであると、漠然と解釈していますが、この解釈で合っているのかどうかも分かりません。PED02744様がおっしゃっていることで私がやりたいことが出来るのではないかと思いますが、具体的な例があれば理解が進むと思うのですが。
例えば、Javaアプレットにbutton1だけがあって、そのbutton1を押すためにはどのようにVBAでコードを書けばいいのでしょうか。

よろしくお願いいたします。

補足日時:2007/08/24 15:54
    • good
    • 0

>VBAでIEや外部プログラムを制御する方法を勉強するのにちょうど良いサイトや書籍をご存じでしたら紹介していただけないでしょうか。



Win32 OLE系の書籍やサイトがお勧めかなと思います。
たぶん、VBAでこの手をものを捜すのは難しいので、
VB6用のWin32 OLE系の書籍・サイトを探してみてください。
(書き方は、VB6もVBAも同じですから)

後、VBではなく、Rubyでの例になってしまうのですが、
IEコンポーネントの操作方法が、Win32 OLEで掲載されている
サイトを発見したので、お知らせします。
(表現がRubyとVBで違いますが、ある程度、VBでどう表現を置き換えればいいかはサンプルコードから検討がつきます。)

http://jp.rubyist.net/magazine/?0003-Win32OLE

ご参考になれば幸いです。
    • good
    • 0
この回答へのお礼

kero_mio様、度々ありがとうございます。

参考にさせていただきます。私は随分大変なことをやろうとしているんだと感じています。

また、アドバイスよろしくお願いします。

お礼日時:2007/08/24 16:11

配置するJavaAppletのつくりによっても、設定するプロパティや


パラメータは変わってくると思います。
(JavaAppletもJDKの標準コントロールを使っているのであれば
いいですが、手作りコントロールだと、話は変わってきます)

なので、どんなJavaAppletをVB上で配置したいのか、
JavaAppletの内容(ソースでもいいので)とかあれば
ご教示願います。

また、VBのバージョンは、何を使っているのか?
(VB6?VB.NET 2002?VB.NET 2003?VB.NET 2005?)
についても合わせてご教示下さい。

その上でわかる範囲でご回答します。宜しくお願いします。

この回答への補足

kero_mio様、回答ありがとうございます。
以下、補足というか、お詫びというか、再質問です。
Visual BasicでJavaアプレットを操作したいと書きましたが、実はExcel2000のVBAでそのような操作ができないかと思っています。Visual Basicと書いた方がより広範な意見が聞けると判断したためです。申し訳ありません。さらに、Javaアプレットは自作ではなくあるサイト上に表示されるものを操作したいのです。
ですので、Javaアプレットの内容と言っても全く分からないと言うのが実情です。実際にそのサイトを見てもらいたいのですが、URLに私の個人情報が含まれるためここに記載することができません。
Visual Basic(VBA)でJavaアプレットを操作できるのではと思った経緯は下記URLにある「HTML要素へのアクセス#3 (APPLETオブジェクト)」を見たからです。
http://iriyak.adam.ne.jp/uwsc.html
UWSCはVB(VBA)とは関係無いようですが、自作のスクリプト言語でできることなら完成されたプログラム言語であるVB(VBA)にだってできると勝手に判断したのです。
さらに下記URLにある「ActiveXオブジェクトの仕様を知る方法」の内容からJavaアプレットのActiveXオブジェクトさえ分かればWSHでできるならVB(VBA)にも・・・と言うことです。
http://www.roy.hi-ho.ne.jp/mutaguchi/wsh/techinf …
OLE/COM Object Viewerは使っていません。OKWaveで良い回答が得られなかったら試してみようと思っていました。
やはり、サイトの制作者にJavaアプレットの詳細を聞くしかないのでしょうか。

よろしくお願いいたします。

補足日時:2007/08/20 18:21
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!