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も見ています
-
夏が終わったと感じる瞬間って、どんな時?
まだまだ暑い今日この頃。 しかしながら、もう夏は終わっている!……はず。 あなたが思う「夏が終わった!」エピソードを教えてください。
-
【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
2024年は「名探偵コナン30周年」「涼宮ハルヒ20周年」などを迎えますが、 あなたが「もうそんなに!?」と驚いた○○周年を教えてください。
-
ホテルを選ぶとき、これだけは譲れない条件TOP3は?
ホテルを探す時、予約サイトで希望条件の絞り込みができる便利な世の中。 あなたは宿泊先を決めるとき「これだけは譲れない」と思う条件TOP3を教えてください。
-
【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
【お題】 ・買ったばかりの自転車を分解してひと言
-
「お昼の放送」の思い出
小学校から中学校、ところによっては高校まで お昼休みに校内放送で、放送委員が音楽とかおしゃべりとか流してましたよね。 最近は自分でもラジオができるようになって、そのクオリティもすごいことになっていると聞きます。
-
excel VBA でjava のボタンを押すには
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・ハマっている「お菓子」を教えて!
- ・最近、いつ泣きましたか?
- ・夏が終わったと感じる瞬間って、どんな時?
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAでの[]
-
エクセルVBA 画像を貼り付ける...
-
servletからjspへオブジェクト...
-
javaで、、、
-
VB2005でADDとINSERTの違いは?
-
サーブレットコンテキストの意...
-
MessageBox.Show(Me,…の「Me」...
-
VB.netでメソッドからコントロ...
-
System.Collections.SortedList
-
String型からlong型への変換は...
-
Excel VBA 定数にオブジェクト...
-
画像ファイルをリクエストパラ...
-
C#のクラスで値渡しをする
-
vectorの内容をString型に変換...
-
VB.NETでのnothing の意義について
-
setRequestAttributeとは?
-
C#で親にイベントを投げる方法
-
mkdirsでフォルダが作成されない
-
「タイプ初期化子が例外をスロ...
-
エクセルVBAで、条件に一致する...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルVBA 画像を貼り付ける...
-
VBAでの[]
-
サーブレットコンテキストの意...
-
VB.netでメソッドからコントロ...
-
C#のクラスで値渡しをする
-
servletからjspへオブジェクト...
-
Excel VBA 定数にオブジェクト...
-
javaで、、、
-
VB.NETでのnothing の意義について
-
JSPでのArrayListの表示につい...
-
Dispose()は、どんな時に使うの...
-
String型からlong型への変換は...
-
ピクチャーボックスに点を打つ...
-
PrintFormを使用してのプリント
-
Javaでブラウザ判定
-
Vba ListViewの行挿入に関して...
-
C#で親にイベントを投げる方法
-
VBスクリプトでテキストファイ...
-
mkdirsでフォルダが作成されない
-
ArrayListのデバッグ方法について
おすすめ情報