こういうことをしてみたいケースがあった。シート上に商品一覧みたいなリストがあったとして:
イメージ 1

右クリックで「○○のページで表示」みたいなメニューが出てくるっていう
(もちろん実際にはYahoo!ショッピングじゃないですけどね):
イメージ 2

単なる検索ならURLを生成してHyperlinkで開けばできそうだった。

しかし実際にやりたかったのは検索ではなく、あるサイトでJANコードを使って
特定の商品のページを一発で表示させることだった。
ところがそのサイトでは独自の商品コードで管理していて、それができなかった。
URLにはその独自のコードが入ってなければならない。でもそんなコードはわからない。

ただしトップページの検索ボックスにJANコードを入れて検索させれば、
その商品のページが一発で表示されることがわかった。
そこでおかしなことを思いついた。
上の右クリックメニューを実行するとIEでそのトップページを開き、
自動的にセルの値を検索ボックスに入力・検索するという仕掛け。

なんかバカっぽいwww
でも「フォームに自動入力・送信」ってことでは他のケースでも使えるかも。
そこで実験がてら、やってみることにした。

で、そんなことExcelでできるの?って、いろいろ調べたらできた。
「Microsoft HTML Object Library」ってやつを使う。
ただ、まとまったマニュアルらしきものやオブジェクトの一覧が見つからなかったので
手探りでいじるしかなかったんだけど。
イメージ 3

・・・ってことはExcelの機能でもなんでもなくて、Wordでやっても何でやってもいいわけだがw
でもExcelだったら、リストから複数の項目へ連続入力なんてこともできそうだ。
ただし、以下はIE7やVistaでは通用しないらしい。画面はExcel2003とIE6です。
イメージ 4

右クリックメニューで呼び出すプロシージャをこんなふうにしてみた:
Public Sub Auto_Search()
Dim objIE As Object '見ての通りIEのオブジェクト
Dim sKeyWord As String '見ての通り検索ワード
Dim sngTemp As Single 'ページを開けなかった場合にタイムアウトと判定させるのに使用

Const URL = "http://shopping.yahoo.co.jp/"
Const TIME_OUT = 15 'タイムアウトとして設定する時間(秒数)

    On Error GoTo Proc_Err

    sKeyWord = ActiveCell
    Set objIE = CreateObject("InternetExplorer.application") 'IEが開く
    
    With objIE
        .Visible = True 'IE可視化
        .navigate URL '指定のURLを開く

        sngTemp = Timer
        Do While .Busy = True '接続中は「Busy = True」らしい。
            DoEvents
            '時間内に接続できなかったら終了
            If Timer - sngTemp > TIME_OUT Then GoTo IE_TimeOut 
        Loop
        
        sngTemp = Timer
        Do While .readyState <> 4 '「ReadyState」はページのDL状態を示すらしい。4で完了。
            DoEvents
            '時間内にDLできなかったら終了
            If Timer - sngTemp > TIME_OUT Then GoTo IE_TimeOut 
        Loop

        .document.forms(1).Item("p").Value = sKeyWord '検索ボックスに入力
        .document.forms(1).submit '送信=検索の実行
    End With

Exit_Proc:
    Set objIE = Nothing 'いちおう
    Exit Sub
    
IE_TimeOut:
    MsgBox "タイムアウトです", vbInformation
    Resume Exit_Proc
    
Proc_Err:
    MsgBox "エラー:" & Err.Number & vbCrLf & Err.Description, vbExclamation
    Resume Exit_Proc
End Sub
なんで検索ボックスがforms(1)の"p"ってわかるのか?って、
それはそのページをあらかじめ調べてみるしかない。
イメージ 5

メモ帳でHTMLソースが開くので、それらしきところを探してみる。CSSとかわかんないけど。
イメージ 6

二つめのformのタグが「<form action="/search" method="get">」とか書いてあるから、
たぶんこれだろうと。二つめだからforms(1)。
で、そのタグの中に「<input name="p" class="dvTxt" type="text" value="">」
とかあるのがそれっぽいなあと。だから"p"。

Wordで開いて調べることもできる。
イメージ 7

イメージ 8

まあ実際には何度か実験して確認したんですけどね。

で、実行してみると一応動いた。
イメージ 9

変なもんに入力・送信してもマズイので、とりあえず検索で実験してみたけど、
なんか使えそうなので覚えておくことにする。

っても、いずれIE7にするだろうし、また調べ直さなきゃいけないですけどね。