ブログジャンル

にほんブログ村 為替ブログ 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回 その1 自動売買用プログラム - for ExcelVBA

こんばんわ!

いつもはキャッシュフロー照会を見てニヤニヤしていたりするのですが、含み損が猛烈な勢いで増えていっているので、ブログを書いて現実逃避させて頂いておりますw

今日で3回目になります。
まだ前回までの分をご覧になっていない方はこちらからどうぞ。
2回目:IEを起動し、目的のページを開く。
1回目:エクセルVBAの画面を表示させる


本日は「検索フォームに文字を入力し、検索する。」です。
ちょっと長くなってしまったので、2回に分けたいと思います。


まずは課題の流れをご紹介。

1.URLの書き換え
2.検索フォームに文字入力をするプログラムの追加
3.文字入力できず、失敗するw
4.別のやり方を試す
5.検索ボタンをクリックするプログラムを追加

以上、5件です。
今日は3件目までとなります。
(すみません)


まずは前回のプログラムを用意してください。
そして、「目的のページのURLを指定し、開きます。」のところのURLを書き換えます。
URLは当ブログを指定してください。

変更後:http://fxbouz2011.blog67.fc2.com/
変更前:http://www.google.co.jp/


※当ブログには短縮アドレスもありますが、
こちらはプログラムをテストする上で扱いづらかったので、
本アドレス(上記のアドレス)を必ず指定してください。


では、検索フォームに文字を入力するプログラムの追加です。
このプログラムを「ページの表示完了を待ちます。」の下に付け足してください。
(前回エラーが出て消してしまった方は、「目的のページのURLを指定し、開きます。」の下にお願いします)
(また、別の改善策をこの記事内の追記に載せていますのでプログラムの追加をしておいてください。)

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


と書いたはいいものの、もうこの辺りから私には説明できないレベルとなっておりますので、詳細はぜひご自分でお調べすることをオススメいたします!


ちょー簡単に説明しますね。
ブログ内にある検索フォームのテキストボックス(名前は「q」)に「くるくるワイド」を入力してください。と、
同じく検索フォーム内の選択箇所(名前は「range」)を「blog」にしてください。という内容です。

んで、このまま実行すると

実行時エラー○○○
オブジェクトは、このプロパティまたは・・・以下略。

ってVBAに怒らせてしまいます。


Q.これはなぜか!?
A.「・・・分かりません!!」


ちなみに下記のように上のプログラムにのみ、シングルクォーテーションを追加してやると動くと思います。
(コメント化し、プログラムを無効にする。)
-------------------- ここから --------------------
'フォームに文字を入力する。
'objIE.Document.all("q").Value = "くるくるワイド" '検索する文字を指定する
objIE.Document.all("range").Value = "blog" 'blogは「このブログ内」を選択し、webだと「ウェブ全体」を選択します。
-------------------- ここまで --------------------



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

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


みなさん、おやすみなさい☆
(今日失敗したプログラムは下記になります)


-------------------- ここから --------------------
'2011/06/15 第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.all("q").Value = "くるくるワイド"
objIE.Document.all("range").Value = "blog"


'課題を達成した喜びのコメントをイミディエイトに書き出す
Debug.Print "めっちゃ嬉しいです!"


End Sub
-------------------- ここまで --------------------



追記
前回、「ページの表示完了を待ちます。」でエラーが出てしまった方へ。
このまま何も対処せずに進めてしまうと、いろいろ問題が出てきますので以下のプログラムを追加しておいてください。
目的は前の分と同じようなものですが、これは時間をベースにしておりますので、
重いページなどは数字を変えてやる必要が出てきます。
前の分は「表示が完了されるまで時間に関係なく待つ」だったのが、今回は「指定した時間を待つ」となっております。

-------------------- ここから --------------------
'ページの表示完了を待ちます。
Application.Wait Time:=Now + TimeValue("00:00:05") '5秒間待つ
-------------------- ここまで --------------------


待つ時間を変える場合は時計と一緒で、
5分なら 00:05:00 となります。 
「時:分:秒」の順番ですね!




スポンサーサイト

コメント

こんばんは。
今回も無事完了です^^
更新お疲れ様です。
2011-06-15 22:20 ねもどん #- URL [ 編集 ]

Re: タイトルなし

訪問ありがとうございます。
エクセルのバージョンには関係なく、順調に動いているようですね。

更新頑張っていきます!
2011-06-17 00:38 ヒゲ☆坊主 #- URL編集 ]

コメントの投稿



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


トラックバック

http://fxbouz2011.blog67.fc2.com/tb.php/15-353c707c

 | ホーム | 


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