エクセル2021です。以下リンクアップデートのマクロVBAを実行した後、複数のリンク先すべてのアップデートが正常に更新された場合、Sheet1のセルA1にOKと表示させたいです。一方、それら複数のリンクの内、ひとつ以上にリンク先が存在せず、すべてのリンク先の更新に失敗した場合、Sheet1のセルA1にNGと表示させたいです。どのようなコードにしたらよろしいか、ご教示頂けませんでしょうか。よろしく、お願い致します。Sub UpdateLinkSources()ActiveWorkbook.UpdateLink Name:=ActiveWorkbook.LinkSourcesEnd Sub

1件の回答

回答を書く

1127224

2026-01-24 14:35

+ フォロー

試してみて下さい。

どのリンクが失敗したのかも出せますが、

必要のないものは無しで、簡単な記述がよいかと。

コメントアウト書いたので大体わかれば応用次第です。

A1にOK,NGの表示としました。

まずは下記だけではしらせてみて下さい。



Sub UpdateLinkSources()

Dim links As Variant

Dim i As Long

Dim linkOK As Boolean



' 初期状態を「成功」としておく

linkOK = True



' リンクが存在しない場合は処理終了

links = ActiveWorkbook.LinkSources(Type:=xlLinkTypeExcelLinks)

If IsEmpty(links) Then

Worksheets(\u0026quot;Sheet1\u0026quot;).Range(\u0026quot;A1\u0026quot;).Value = \u0026quot;OK\u0026quot;

Exit Sub

End If



' 各リンク先を順に確認

On Error Resume Next

For i = LBound(links) To UBound(links)

Err.Clear

ActiveWorkbook.UpdateLink Name:=links(i)

' エラーが発生したらリンク失敗と判断

If Err.Number \u0026lt;\u0026gt; 0 Then

linkOK = False

End If

Next i

On Error GoTo 0



' 結果を出力

If linkOK Then

Worksheets(\u0026quot;Sheet1\u0026quot;).Range(\u0026quot;A1\u0026quot;).Value = \u0026quot;OK\u0026quot;

Else

Worksheets(\u0026quot;Sheet1\u0026quot;).Range(\u0026quot;A1\u0026quot;).Value = \u0026quot;NG\u0026quot;

End If

End Sub

うったえる有益だ(0シェアするブックマークする

関連質問

Copyright © 2026 AQ188.com All Rights Reserved.

博識 著作権所有