Excelのマクロを使って、インターネットエクスプローラーを操作したいです。

例えばGOOGLEで「VBA」というキーワードを検索するにはどうしたらよいでしょうか?

ただし下記の2つの作業を行うことを条件としております。
①検索窓を指定して、キーワードを入力。
②「GOOGLE 検索」のボタンを押す。

他の方法で検索する方法は必要ありません。

マクロを勉強し始めてまだ1週間もたたない初心者です。
ご指導よろしくお願いします。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:--
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答3件)

id:tom_brown No.1

回答回数259ベストアンサー獲得回数0

ポイント10pt

http://www.microsoft.com/japan/msdn/vbasic/

Visual Basic デベロッパー センター

エクセルのマクロではエクセルの中でしか出来ません。

Visual Basic を使ってインターネットエクスプローラーを、

操作したいのであれば

Visual Basic を購入する必要があります。

http://www.vector.co.jp/soft/win95/util/se211440.html

キーボードマクロ&マウスマクロ KMmacro(Windows95/98/Me / ユーティリティ)

また、マクロを使ってインターネットエクスプローラーを、

操作したいのであれば、

フリーソフトがいくつかございますので、

ダウンロードしてみるとよいでしょう。

http://www.vector.co.jp/vpack/filearea/win95/util/operate/index....

Download: Windows95/98/Me用ソフト > ユーティリティ > 操作関係

id:taroemon

さっそくのご回答ありがとうございます。

もちろんVBAを使って操作したいと思っています。言葉足らずでしたね。

また他のツールや方法は必要としておりません。

上記のような操作を行うためのプロシージャを教えていただけると幸いです。

2006/01/14 15:33:34
id:zifree No.2

回答回数175ベストアンサー獲得回数6

ポイント30pt

http://www.hatena.ne.jp/1078308281

人力検索はてな - 複数のテキストボックスの中身をコピーして、他のウインドウの同数のテキストボックスにその内容をペーストする必要性が出てきました。 データ1+TAB+データ2+...とい..

ExcelのVBA用に簡単な(そのかわり、あまりいい方法では無いですが)サンプルコードを書いてみました。


1.IEを起動し、www.google.comを開く

2.検索したい言葉をセルA1からクリップボードにコピー

3.検索したい言葉をCTRL+Vでペースト

4.Enterキーを押す

と言う操作を自動的に行います。


◎準備

・CommandButtonを1個置いて、名前をcmdGoogleとしておきます。

「表示」→「ツールバー」→「コントロール ツールボックス」

で表示されたコントロール ツールボックスから「コマンドボタン」を選び、

シートの適当な場所をクリックしてボタンを置きます。

ボタンの右クリックメニューから「プロパティ」を選び、

(オブジェクト名)を「CommandButton1」→「cmdGoogle」に変更します。

・セルA1に検索したい文字列「VBA」を入れておきます。


◎コード ※ ’と:と¥と”は全角になっていたら半角に直して下さい

Private Declare Function GetTickCount Lib ”kernel32” () As Long


Private Sub cmdGoogle_Click()


’IE起動。パスはお使いの環境に合わせて下さい。

Shell ”C:¥Program Files¥Internet Explorer¥IEXPLORE.EXE www.google.com”, 1

Waiter 5000 ’IEが起動するまで少し待つ。うまくいかなかったら値を増やして下さい

’セルA1をクリップボードにコピー

Cells(1, 1).Copy

’キー入力を送る。Ctrl+vの後Enter

’キー入力が早すぎると失敗することがあるので、キー入力した後も少し待っています

SendKeys (”^(v)”)

Waiter 500

SendKeys (”{ENTER}”)

Waiter 500

End Sub


’TTで指定した時間(単位はミリ秒)だけ何もせず待つ関数

Private Sub Waiter(TT As Long)

Dim T1 As Long, T2 As Long

T1 = GetTickCount()

Do Until T2 - T1 >= TT

T2 = GetTickCount()

DoEvents

Loop

End Sub

http://homepage2.nifty.com/kasayan/vba/vba4.htm

他のアプリケーションの起動(API,OLE,DDE)

この方法の欠点はキー入力を送る方法なので、実行中マウスやキーボードを操作すると失敗することです。


またsendKeys関数はWindowsAPIのSendInputを、

Shell関数はWindowsAPIのShellExecuteを

使った方が安全です。

http://homepage1.nifty.com/MADIA/vb/vb_bbs2/200305_03050014.html

web�y�[�W�������������ɂ́H

VB6でWebBrowserコントロールを使う方法についての議論がありました。

VBAでも同様にできるはずです。

http://www.microsoft.com/japan/msdn/vs/webapplication/vbtchAcces...

Visual Basic .NET を使用した Google Web サービスへのアクセス

IEを使った検索にこだわらないなら、Google Web APIを使うべきです。

Visual Basic .NETでのサンプルですが、WebBrowserコントロールの方法と同様ExcelのVBAでも可能だと思います。

id:nkysn No.3

回答回数10ベストアンサー獲得回数0

ポイント50pt

http://www.ken3.org/cgi-bin/group/vba_ie.asp

�O���NVBA��InternetExplorer.Application�

id:taroemon

丁寧なご回答ありがとうございます。

これでなんとかできそうです。ありがとうございました。

2006/01/14 18:12:21

コメントはまだありません

この質問への反応(ブックマークコメント)

トラックバック

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません