Excelでリンク切れチェックソフトを作ってみよう

Step 2 IE(インターネット エクスプローラ)を開く

「開始」ボタン後~IEを開くまでの流れ
(1) URLの入力を確認します。もし、何も入力されていない場合は、エラーメッセージを表示し中止します。
(2) CreateObject("InternetExplorer.application") でIEを起動します。
(3) navigate にURLを代入し、URLを開きます。
(4) IEのReadyState が 4 になるまで30秒間ループします。
  ReadyState = 4 で IEが読込みを完了したことになります。
  ループ中は、「URLをオープンしています。」+秒数 を表示します。
(5) 30秒経過しても読込み完了しない場合、「IEをオープンできませんでした。処理を中止します。」のメッセージを表示し処理を中止します。読込みが完了した場合は、秒数表示を消しプロシージャを抜けます。

実行中、想定外のエラーが発生した場合は、「処理中にエラーが発生しました。処理を中止します。」とエラー内容を表示し処理を中止します。



Homeへ > Excelでアプリケーションソフト2 > リンク切れチェックソフト

シート画面

IEを開く間のカウントアップメッセージをシートに追加しています。入力されたURLを開くことができない場合、下画像のような「入力されたURLを開くことができませんでした。URLを確認してください。」とメッセージが表示されます。
インターネット エクスプローラを開く


シートのVBAコード

下記のコードを入力してください。

Option Explicit

Private tIEobj As Object

Private Function ExCreateIEobject() As Boolean
    Dim sttime As Long
    Dim passtime As Long
    
    ExCreateIEobject = False
On Error GoTo ErrExit
    Set tIEobj = CreateObject("InternetExplorer.application")
    tIEobj.navigate TextBox1
    
    '読み込みが終わるまで30秒待つ
    Label2.Visible = True
    sttime = Timer
    Do
        '経過時間を算出
        passtime = Timer - sttime
        Label2.Caption = "URLをオープンしています。 (" & passtime & ")"
        DoEvents
        If passtime >= 30 Then
            Exit Do
        End If
        '読込み完了
        If tIEobj.ReadyState = 4 Then
            Exit Do
        End If
    Loop
    If tIEobj.ReadyState <> 4 Then
        MsgBox "IEをオープンできませんでした。処理を中止します。"
    Else
        If LCase(tIEobj.Document.URL) <> LCase(TextBox1) Then
            MsgBox "入力されたURLを開くことができませんでした。URLを確認してください。"
            TextBox1.Activate
        Else
            ExCreateIEobject = True
        End If
    End If
    Label2.Visible = False
    Exit Function
ErrExit:
    MsgBox "処理中にエラーが発生しました。処理を中止します。" & vbCrLf & Err.Description
On Error Resume Next
    tIEobj.Quit
    Set tIEobj = Nothing
End Function


Homeへ > Excelでアプリケーションソフト2 > リンク切れチェックソフト

■■■
このサイトの内容を利用して発生した、いかなる問題にも一切責任は負いませんのでご了承下さい
■■■
当ホームページに掲載されているあらゆる内容の無許可転載・転用を禁止します


Copyright (c) Excel-Excel ! All rights reserved