tagCANDY CGI VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板 [ツリー表示へ]   [Home]
一括表示(VB6.0)
タイトル翻訳エンジンを変えるには
記事No12787
投稿日: 2008/07/17(Thu) 03:06
投稿者ベル

サンプル投稿用掲示板
エキサイト翻訳を自動的に行う(VB6.0)
http://hanatyan.sakura.ne.jp/patio/read.cgi?mode=view&no=176

を利用させて頂きました。

翻訳エンジンを「エキサイト翻訳」から、普段使っていた「Infoseek マルチ翻訳」に変えるにはどうすればいいでしょうか。
Infoseek マルチ翻訳
http://translation.infoseek.co.jp/

アドレスだけ変えて実行してみたのですが、次ぎの行でエラーが出てしまいます。
.Document.Forms(0).Elements("before").Value = CVar(s)

VBのウオッチ機能を使ってオブジェクトを調べて
"before"をいろいろ変えてみたのですがうまく行きませんでした。
どういうふうに変えたらいいでしょうか?

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

[ツリー表示へ]
タイトルRe: 翻訳エンジンを変えるには
記事No12788
投稿日: 2008/07/17(Thu) 05:43
投稿者花ちゃん
下記のように両方のサイトのソースコードの該当箇所の違いを見比べてみて下さい。

エキサイト 翻訳の場合
<input type="submit" name="start" value=" 翻 訳 ">

実際のコード
.Document.Forms(0).Elements("start").Click

Infoseek 翻訳の場合
<input type="submit" name="submit" value=" 翻訳 " />

[ツリー表示へ]
タイトルRe^2: 翻訳エンジンを変えるには
記事No12796
投稿日: 2008/07/17(Thu) 21:02
投稿者ベル

下記のように変更することでうまく行きました!!
どうもありがとうございました。


.Document.Forms(0).Elements("before").Value = CVar(English)
   ↓
.Document.Forms(1).Elements("original").Value = CVar(English)


.Document.Forms(0).Elements("start").Click
   ↓
.Document.Forms(1).Elements("submit").Click


.Document.Forms(0).Elements("after").Value
   ↓
.Document.Forms(1).Elements("converted").Value


今回、私は上の例で、Forms が 1 で、Elements が "original" であるというようなことを、IEの「表示」メニューの「ソース」をクリックして現れたhtmlソースをメモ帳の検索機能をつかって調べることができたのですが、とても大変でした。
何か簡単に知る方法はあるのでしょうか?
「Elements」は 「elementFromPoint」 を使えば取得できという情報を得ることができたのですが、「Forms(x)」の「x」が何になるかをもう少し簡単に知る方法がありましたらご教授たまわりたいのですが、何度も恐縮ですが、よろしくお願い致します。

[ツリー表示へ]
タイトルRe^3: 翻訳エンジンを変えるには
記事No12798
投稿日: 2008/07/17(Thu) 22:21
投稿者花ちゃん
ここのサンプルの No.457 のようにご自分で必要なツールを作ればいいのでは。
Document.allオブジェクト で、すべての要素が取得できますので、Forms(0) か
Forms(1) かは、FORM という要素(タグ)がいくつあるか、"converted" はどちらの FORM に
あるのかを見れば、最初の方なら 0 で 2個目の方なら 1 になります。
又、Forms(0) と Forms("topForm") は同じものを指しています。 


185 FORM                          text                                        
196 TEXTAREA       textarea       original       翻訳したい文章をここに入力して
216 INPUT          submit         submit          翻訳                       
233 TEXTAREA       textarea       converted      ここに翻訳結果が表示されます。

まずは、HTML ファイル(ホームページ)がどのようにして作られているか理解して
おく必要があります。

http://www.htmq.com/html/form.shtml

後は、もっと検索してご自分で色々調べる事ですね。

[ツリー表示へ]
タイトル解決: 翻訳エンジンを変えるには
記事No12799
投稿日: 2008/07/18(Fri) 00:26
投稿者ベル

elementFromPoint でマウスの位置の element を取得して、その element を含む Form を、Document.allオブジェクトを For-Each文で探していくという方法で何とかできました!!
どうもありがとうございました。

.Document.Forms(0).Elements("before").Value = CVar(English)
   ↓
.Document.Forms(1).Elements("original").Value = CVar(English)
   ↓
For Each MyObject In .Document.All
    If MyObject.tagName = "FORM" Then
        MyObject.Elements("original").Value = CVar(English)
    End If
Next


.Document.Forms(0).Elements("start").Click
   ↓
.Document.Forms(1).Elements("submit").Click
   ↓
For Each MyObject In .Document.All
    If MyObject.tagName = "FORM" Then
        MyObject.Elements("submit").Click
    End If
Next

.Document.Forms(0).Elements("after").Value
   ↓
.Document.Forms(1).Elements("converted").Value
   ↓
For Each MyObject In .Document.All
    If MyObject.tagName = "FORM" Then
        MyObject.Elements("converted").Value
    End If
Next

多分この方法だと同じ名前のElementがあったりするとまずいのかもしれませんが、
その都度修正していきたいと思います。

ご紹介頂いたサイトを参考に、これからもっと詳しく勉強していこうと思います。
どうもありがとうございました。

[ツリー表示へ]