ブログジャンル

にほんブログ村 為替ブログ 100通貨単位・1000通貨単位へ
にほんブログ村の為替ブログランキングに参加中です。応援よろしくお願いいたします♪

検索フォーム


カレンダー

05 | 2017/06 | 07
- - - - 1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 -

最新記事


最新コメント


最新トラックバック


月別アーカイブ


カテゴリ


リンク


スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

第03回 その2 自動売買用プログラム - for ExcelVBA

前回の続きです。
3回目:検索フォームに文字を入力し、検索する。

■あらすじ
たぶん、検索フォーム(名前は「q」)が2つあるからだと思うのですが、正直自信がないです。
1つはブログ上段にあるFC2の検索フォーム。2つ目はブログ左メニューにある検索フォーム。
どちらも同じ名前が付いているので、ダメなんだろうと思います。

これは当ブログのソース(HTML)を見れば分かるのでいまから説明をしましょ・・・か・・・・・ねむたい。
ということで、睡魔に襲われたので、戦わず負けたいと思いますw



こんな感じでしたね。
日にちが経ったので読み返しましたよ。


ということで、まずはソースチェック!
ほとんどのブラウザで見れますが、
若干メニュー名が異なるようです。


ここではGoogle Chromeを使います。
IE6(バージョン古っ!!)だと文字化けしてしまいました。

ブラウザ上で右クリックし、「ページのソースを表示」でOKです!
20110617-vba02



そしたら、英語でなんたらかんたらって書いてあって、
たまに日本語が割り込んでくるページが表示されたと思います。
これがソース(HTML言語)と呼ばれるものです。
20110617-vba03
(日本語が文字化けする方はoperaとかfirefoxとか別のブラウザで見てみてください)


では、このソース上でテキストボックスを探してみましょう!
テキストボックスの名前は(name="q")になります。←括弧は外してください。
20110617-vba04


すると、2つ見つかりました!
20110617-vba05


つまり、同じ名前のテキストボックスがあるので、キーワードの入力が出来なかったようです。←自信ないw
ちなみに検索する対象(ブログ内orウェブ全体)は1つしかなかったので問題なく、選択ができたわけです。
(検索する対象のタグに付けられた名前は name="range" です)



それでは、別の方法を試してみましょう!
(作り置きしてたのに保存し忘れて、最初からやり直しです。凹むー。)


と思ったら、最初に考えてたやつよりクールなプログラムがありました。
こっちのほうがシンプルで良いので、こちらを紹介しますw
ついで検索ボタンも押しちゃいます!
-------------------- ここから --------------------
'検索フォームにキーワードを入力し、検索する対象を選択する。
objIE.Document.forms("barForm").Item("q").Value = "くるくるワイド" '検索するキーワードを指定する
objIE.Document.forms("barForm").Item("range").Value = "blog" 'blogは「このブログ内」を選択し、webだと「ウェブ全体」を選択します。

'フォームを送信
objIE.Document.forms("barForm").submit
-------------------- ここまで --------------------


実行してみると下記のページになったでしょうか?
うまくいけば、今回の課題は終了です。
お疲れ様でした☆
20110617-vba06


今日のプログラムは下記になります。

-------------------- ここから --------------------

'2011/06/18 第03回 自動売買用プログラム - for ExcelVBA
'本日の課題:「検索フォームに文字を入力し、検索する。」

Sub IE_from()


'IE起動
Dim objIE As Object 'IE用の変数を定義します。
Set objIE = CreateObject("InternetExplorer.Application") 'IE用のオブジェクトを作成します。
objIE.Visible = True 'IEのウィンドウをTrueで可視状態にします。 Falseなら見えません。

'目的のページのURLを指定し、開きます。
objIE.Navigate "http://fxbouz2011.blog67.fc2.com/"

'ページの表示完了を待ちます。
While objIE.ReadyState <> 4 Or objIE.Busy = True
DoEvents
Wend

'検索フォームに文字を入力する。
objIE.Document.forms("barForm").Item("q").Value = "くるくるワイド" '検索するキーワードを指定する
objIE.Document.forms("barForm").Item("range").Value = "blog" 'blogは「このブログ内」を選択し、webだと「ウェブ全体」を選択します。

'フォームを送信
objIE.Document.forms("barForm").submit


End Sub

-------------------- ここまで --------------------



追記1
最後のプログラムについて何も説明してなかったですね^^;
簡単に言えば、テキストボックスがある位置を詳しく指定してみました。
住所と同じで、

変更後:福岡県-福岡市-中央区-天神-AAA
変更前:福岡県-○○○-○○○-○○-AAA
(○は空白という意味です。)

そりゃ、手紙(キーワード)も届かない可能性高いですよね。
HTML言語でいうと、form(検索フォーム)→input(テキストボックス)→q(テキストボックス名) という括りです。

検索フォームの送信は、
"objIE"上の"barForm"という名前のフォームを"submit"送信してください、という内容になっております。


フォームを指定することができたのは嬉しいです。
いま使っている自動運転のプログラムもだいぶシンプルにすることができそうです。
勉強になりました!


追記2
検索時にポップアップのブロックがされた方へ。
このままでは今回の課題の実行結果を見ることができませんので、ブロックの解除をしてください。
20110617-vba07


ポップアップの警告が出ているところで、左クリックをすると下記のようなメニューが出てきますので、
「このサイトのポップアップを常に許可」してください。
20110617-vba08


すると、このようなメッセージが表示されますので「はい」で了解してください。
20110617-vba09


もう一度プログラムを実行すると、今度はちゃんと検索ができると思います。
ではでは、また次回をお楽しみにー♪



スポンサーサイト

コメント

コメントの投稿



管理者にだけ表示を許可する


トラックバック

http://fxbouz2011.blog67.fc2.com/tb.php/21-cfeebdfc

 | ホーム | 


上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。