No.2ベストアンサー
- 回答日時:
>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:47kero_mio様、ご回答ありがとうございます。
お礼が遅くなり申し訳ありませんでした。
上記の内容を吟味してから、再度質問なりお礼をしようと思っていたのですが、私の力では時間がかかってしまいそうなので、取り急ぎお礼をさせていただいた次第です。
>・IEコンポーネントまたは、ブラウザコントロールを使って、
JavaAppletが定義されている要素を探す処理を作る
>・JavaAppletの中にあるコントロールを動かすためには、
JavaAppletで公開されているパラメータがあるはずなので、
そのパラメータをブラウザ内から、JavaApplet用HTML要素を
取得&設定して、JavaAppletを操作する
この方法を自分で調査してみます。行き詰まったらまた質問をさせていただきますのでよろしくお願いします。
No.4
- 回答日時:
よくわかりませんが、、
JAVAアプレットはActiveXではない(少なくともActiveXオブジェクト名は表に出ない)です。
また、Javaアプレットで操作できるのは、publicメソッドやpublicメンバだけです。
例えばbutton1というボタンがあったとしても、これがpublicでなければ外部からアクセスできません。
というか、どうやってJAVAのクラスメソッド名などを知るつもりですか?
JARファイルからJAVAクラスを抜き出して、それを逆コンパイルするのでしょうか?
余り一般的ではないですし、著作物人格権的にちょっとグレーです。
※リバースエンジニアリングの禁止
じゃあ、できないのか?
っていうと、ActiveXとしての操作はできませんが、別のアプローチでできます。
それは、WindowsAPIを使って、画面上の全てのオブジェクトの情報を取得して、手でマウスを使ってクリックするように、ボタンを無理やりWindowsに押させる方法です。
市販されているソフトでは、自動試験ソフトがそれにあたります。
この回答への補足
PED02744様、回答ありがとうございます。
これまで頂いた回答で私は、自分の力ではどうにもならないことをやろうとしていると知らされたようです。
>それは、WindowsAPIを使って、画面上の全てのオブジェクトの情報を取得して、手でマウスを使ってクリックするように、ボタンを無理やりWindowsに押させる方法です。
初歩的な質問ばかりで恐縮ですが、WindowsAPIってどうやって使うんですか。アプリケーション同士をつなぐ関数が集められたものであると、漠然と解釈していますが、この解釈で合っているのかどうかも分かりません。PED02744様がおっしゃっていることで私がやりたいことが出来るのではないかと思いますが、具体的な例があれば理解が進むと思うのですが。
例えば、Javaアプレットにbutton1だけがあって、そのbutton1を押すためにはどのようにVBAでコードを書けばいいのでしょうか。
よろしくお願いいたします。
No.3
- 回答日時:
>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
ご参考になれば幸いです。
kero_mio様、度々ありがとうございます。
参考にさせていただきます。私は随分大変なことをやろうとしているんだと感じています。
また、アドバイスよろしくお願いします。
No.1
- 回答日時:
配置する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アプレットの詳細を聞くしかないのでしょうか。
よろしくお願いいたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
あなたが普段思っている「これまだ誰も言ってなかったけど共感されるだろうな」というあるあるを教えてください
-
フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
あなたが普段思っている「これまだ誰も言ってなかったけど共感されるだろうな」というあるあるを教えてください
-
映画のエンドロール観る派?観ない派?
映画が終わった後、すぐに席を立って帰る方もちらほら見かけます。皆さんはエンドロールの最後まで観ていきますか?
-
海外旅行から帰ってきたら、まず何を食べる?
帰国して1番食べたくなるもの、食べたくなるだろうなと思うもの、皆さんはありますか?
-
天使と悪魔選手権
悪魔がこんなささやきをしていたら、天使のあなたはなんと言って止めますか?
-
excel VBA でjava のボタンを押すには
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAでの[]
-
servletからjspへオブジェクト...
-
サーブレットコンテキストの意...
-
エクセルVBA 画像を貼り付ける...
-
VB.netでメソッドからコントロ...
-
String型からlong型への変換は...
-
ADOのOPENで実行時エラー
-
Excel VBA 定数にオブジェクト...
-
ピクチャーボックスに点を打つ...
-
オブジェクトの参照渡しについて
-
MessageBox.Show(Me,…の「Me」...
-
VBスクリプトでテキストファイ...
-
arrayListの要素を参照出来ませ...
-
C#のクラスで値渡しをする
-
JSPでのArrayListの表示につい...
-
getParameter()について
-
javaで、、、
-
ArrayListのデバッグ方法について
-
Excel Book の変更の検知
-
C# トランザクション処理
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルVBA 画像を貼り付ける...
-
VBAでの[]
-
サーブレットコンテキストの意...
-
VB.netでメソッドからコントロ...
-
C#のクラスで値渡しをする
-
Excel VBA 定数にオブジェクト...
-
servletからjspへオブジェクト...
-
VB.NETでのnothing の意義について
-
javaで、、、
-
PrintFormを使用してのプリント
-
Vba ListViewの行挿入に関して...
-
String型からlong型への変換は...
-
Dispose()は、どんな時に使うの...
-
ピクチャーボックスに点を打つ...
-
C#で親にイベントを投げる方法
-
VBS でのソート処理Excel2003
-
JSPでのArrayListの表示につい...
-
VB2005でADDとINSERTの違いは?
-
[ASP.NET]DropDownListのDB連携...
-
ADOのOPENで実行時エラー
おすすめ情報