先日、「そのドメインがSSL化してるかどうかをマクロで調べる」という、
質問をさせていただきました。
そこで書いていただいたマクロは、順調に動いていました。
'//
Sub TestSSLChecker2()
Dim objHttp As Object
Dim nURL As String
Dim strURL As String
Dim i As Long, f As String, l As String
Dim Lastrow As Long, getLine As Long
Set objHttp = CreateObject("WinHttp.WinHttpRequest.5.1")
On Error GoTo ErrHandler
'A1から
getLine = Cells(Rows.Count, 2).End(xlUp).Row
Lastrow = Cells(Rows.Count, 1).End(xlUp).Row
If getLine = Lastrow Then MsgBox "既に終わっているか、データがないです。", vbExclamation: Exit Sub
If getLine < Lastrow And Cells(1, 2).Value <> "" Then
getLine = getLine + 1
Else
getLine = 1 '最初の行が1行目からの場合
End If
For i = getLine To Lastrow
strURL = LCase(Trim(Cells(i, 1).Value)) 'A列の登録URL
strURL = Replace(strURL, "https:", "http:")
If strURL Like "http*" Then
objHttp.Open "GET", strURL, False
objHttp.Send
DoEvents 'ESC割り込み可能にする
With objHttp
If .Status = 200 Then
nURL = .Option(1) 'WinHttpRequestOption_URL
f = Mid(strURL, 1, InStr(strURL, "://"))
l = Mid(nURL, 1, InStr(nURL, "://"))
If nURL = "" Then
Cells(i, 2).Value = "no URL"
ElseIf nURL <> "" Then
If LCase(f) = LCase(l) Then
Cells(i, 2).Value = "non SSL"
Else
Cells(i, 2).Value = "https"
End If
End If
Else
Cells(i, 2).Value = "Err:" & .Status
End If
End With
End If
Endline:
nURL = ""
strURL = ""
Next i
MsgBox "Finished"
Exit Sub
ErrHandler:
If Err() <> 0 Then
Cells(i, 2).Value = Err.Number 'マイナスになるのは外部エラー
GoTo Endline
End If
End Sub
順調に動いていたのですが、頻繁にエラーで止まるようになってきました。
エラーの時にはセルに、「-2147012889」という数値が記入されます。
この「-2147012889」を避けて、
エラーが出さずに、マクロを動かすことは可能でしょうか?
どのような記述で、避けることができるのでしょうか?
よろしくお願いいたします。
No.2ベストアンサー
- 回答日時:
No.1の回答者です。
「-2147012889」の数字が、本日、WiFiのエラーで出てきて考えたのですが、回線そのものの切断のようですね。一旦、エラーが出てくると、繰り返しなのか、復旧するまでにしばらく時間が掛かってしまいます。回線そのものを、有線LANにしたらと考えましたが、それは可能でしょうか。
今の所、IEオブジェクトを使ってやる方法を考えてはいるのですが、エラーでも、内部で済むのではないかと思います。しかし、いかんせん、ものすごく遅いのです。それにコードがややこしい上に、できるという保証はありません。他の良い手立てを思いつかないのです。ただ、Excel 2016ですと、まだ残されている方法があるかもしれません。
返信ありがとうございます。
すごくややこしい形なのですね・・・。
ただ、書いていただいたマクロでも、
切断の度に、手動で再接続することはできます。
私のために、いろいろと思考錯誤していただいたようで、
感謝しております。ありがとうございます。
No.1
- 回答日時:
そのコードの作者ではあるのですが、「-2147012889」で止まるとなると、根本的に書き換えなくてはならないかもしれませんね。
今の所、まったく目処が立ちません。どなたか、この方面で明るい方で挑戦されるかもしれませんが、このマクロには、URLエラーはエラーそのものとして返ってきてしまいます。>この「-2147012889」を避けて、
>エラーが出さずに、マクロを動かすことは可能でしょうか?
ださないだけなら、以下のようにすればよいのですが、復旧するかどうかは不明です。
ErrHandler:
If Err() <> 0 Then
DoEvents '完全に途切れることを防ぐため
GoTo Endline
End If
End Sub
ところで、今のExcelのバージョンはいくつですか?
WindFallerさん、返信ありがとうございます!
ErrHandler:
If Err() <> 0 Then
DoEvents '完全に途切れることを防ぐため
GoTo Endline
End If
End Sub
こちらで試した所、
実行時エラー '-2147012889 (80072ee7)'
サーバー名またはアドレスは解決されませんでした
というポップが出てきて、止まってしまいます。
そして、再開したときに止まったセルに
「-2147012889」と表示されなくなりました。
今のExcelのバージョンは、
Excel2016です。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) なぜExit Subがあるのかわかりません 4 2023/02/19 12:34
- Excel(エクセル) VBAの指示の内容 昨日こちらでご教示頂いたのですが初心者な為、一つ一つの指示が何をやっているのかわ 2 2022/10/25 18:08
- Visual Basic(VBA) いつもお世話になっております、VBAで教えて頂きたいのですが 2 2022/05/05 22:20
- Excel(エクセル) VBAについて 3 2022/06/19 18:19
- Visual Basic(VBA) VBA処理追加 こちらでご教示頂いたのですが回答完了させてしまいましたのでこちらからまた質問させてく 2 2022/10/27 09:57
- Excel(エクセル) マクロで最終行から上に検索を逆にしたい 1 2022/05/17 18:27
- Visual Basic(VBA) 別シートから年齢別の件数をカウントしたいの続き 5 2023/01/24 00:16
- Excel(エクセル) B列に文字がはいったらA列に数字が入るマクロードを完成させたい 4 2023/04/21 01:58
- Visual Basic(VBA) オブジェクトが見つかりません 1 2023/06/24 19:43
- Visual Basic(VBA) 数字が「0」の列を削除するため、下記のコードを実行しましたが、コンパイルエラーSubまたはFunct 3 2022/12/04 00:00
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelでエラー(#N/Aなど)値を...
-
SUM関数の範囲に#N/Aが...
-
もしセルが"#N/A"なら~をする...
-
ExcelでVBAを使用した際に、『...
-
自動改札のエラーって…
-
Chatgptから送られてきたリンク...
-
Eエクセルの計算方法で空欄を0...
-
EXCELマクロで☓400とでます
-
ACCESS VBA でのエラー解決の根...
-
VLOOKUPで求めた数値をさらにVL...
-
VLOOKUP関数についての質問です...
-
エクセルのエラー文について
-
Suicaのモバイル決済で、 バス...
-
APEXをやっていたらこんなエラ...
-
VBAで「致命的なエラー」が出ま...
-
cdプレイヤーの読み取り機能
-
■□■読み方■□■ #N/A, #VALUE!, ...
-
同じボタンが2回押されました。
-
「-2147012889」というエラーで...
-
リコーのmagio neo 271 エラー...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelでエラー(#N/Aなど)値を...
-
SUM関数の範囲に#N/Aが...
-
もしセルが"#N/A"なら~をする...
-
ExcelでVBAを使用した際に、『...
-
自動改札のエラーって…
-
Eエクセルの計算方法で空欄を0...
-
送信エラー時、レポートメール...
-
APEXをやっていたらこんなエラ...
-
ACCESS VBA でのエラー解決の根...
-
VBAで「致命的なエラー」が出ま...
-
Chatgptから送られてきたリンク...
-
普段から使っている乗車券が改...
-
VLOOKUPで求めた数値をさらにVL...
-
EXCELマクロで☓400とでます
-
チケット何回もエラーは高額請求?
-
VLOOKUP関数についての質問です...
-
改札エラーについて
-
エクセルのエラー文について
-
■□■読み方■□■ #N/A, #VALUE!, ...
-
システムエラーです:&H80004005...
おすすめ情報