Excel VBA +、465 332バイト
  注:参照を使用して
  
  
  - Microsoft HTMLオブジェクトライブラリ
- Microsoftインターネットコントロール
- Microsoft Scripting Runtime
ゴルフ済み:
予想されるタイプのSub入力n(名前の略)をVariant/String受け取り、その名前のクエリの最初のGoogle画像検索結果をglamour shotインターネットエクスプローラーウィンドウに出力する完全なルーチン。
Sub g(n)
Set i=New InternetExplorer
l="google.nl/search?tbm=isch&q="&Replace(n," ","+")&"+glamour+shot"
For y=0To 2
i.navigate l
While i.readyState<4
DoEvents
Wend
j=0
Do Until InStr(1,l,IIf(y,"yp","res"))
j=j+1
Set x=i.document.getElementsByTagName(IIf(y,"img","a"))(j)
If y Then l=x.src Else l=x.href
Loop
Next
i.visible=1
End Sub
空白を削除するための-2バイト If InStr(1, a.href, "imgres") Then
に変更.navigate (a.href)する場合は-2バイト.navigate a.href
for each a in ... if (...) then ... end if .. nextループを減らすための-27バイトdo until ... loop
凝縮-10バイトimgresまでresとencryptedしますyp
の初期化子を削除しj、kクリーンモジュールを想定する場合は-8バイト
-1バイトに変更google.comするgoogle.nl
交換用-3バイトDim i as New ...とSet i=New ...
SHDocVw.クラス参照を削除するための-8バイト
with iブロックを削除するための-12バイト
-7バイトの削除i.quit-インターネットエクスプローラーをバックグラウンドで開いたままにしておくと、メモリリークが発生します。代わりに、完全な未ゴルフバージョンを使用するか、使用後にインターネットエクスプローラータスクをタスクマネージャーで終了することをお勧めします
i.navigateヘルパーサブルーチンに移動するための-6バイトh
Do Until ... Loopヘルパーサブルーチンに移動するための-13バイト
-2バイト、j=0ヘルパーに移動して削除,j、,0(x2)
匿名イミディエイトウィンドウ関数に変換する場合は-11バイト
for .. nextループへのヘルパー関数呼び出しを減らすための-8バイト
出力変化のために-16バイトSheets(1)を介して表示する画像オブジェクトをInternetExplorerオブジェクト
Ungolfed、1304バイト
Option Private Module
Option Compare Text
Option Explicit
Option Base 0
Sub GlamourShot(ByVal name As String)
    Dim ie As New SHDocVw.InternetExplorer, _
        doc As MSHTML.HTMLDocument, _
        link As String, _
        j As Integer, _
        k As Integer
    With ie
        On Error GoTo CloseIE #'prevents memory leak
        Let .visible = True
        Call .navigate("www.google.com/search?tbm=isch&q=" & _
                    Replace(name, " ", "+") & _
                    "+glamour+shot")
        While .readyState <> READYSTATE_COMPLETE Or .Busy
            VBA.DoEvents
        Wend
        Set doc = .document
        Let j = 1
        Do Until InStr(1, link, "imgres") > 0
            Let link = doc.getElementsByTagName("a")(j).href
            Let j = j + 1
        Loop
        Call .navigate(link)
        While .readyState <> READYSTATE_COMPLETE Or .Busy
            VBA.DoEvents
        Wend
        Let k = 1
        Do Until InStr(1, link, "encrypted") > 0
            Let link = doc.getElementsByTagName("img")(k).src
            Let k = k + 1
        Loop
        With ThisWorkbook.ActiveSheet
            Call .Range("A1").Select
            Call .Pictures.Insert(link)
            Call .Activate
        End With
CloseIE:
        Call .Quit
    End With
End Sub
使用gif
