エクセル2021です。https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q10322032770関連、その他の回答(1件)でご回答頂きました以下マクロVBAの動作は、リンクアップデートのマクロVBAを実行した後、複数のリンク先すべてのアップデートが正常に更新された場合、Sheet1のセルA1にOK、それ以外はNG。さらにどのリンクが失敗したかがポップアップされるものです。さて、今回の目的は、どのリンクが失敗したかがポップアップされる表示窓において、表示されるリンク先の文字数について、一律、左から何文字目から右に向かって何文字までを表示したいと制限することです。そして、当該、一律制限については、Sheet1のセルB1に左から何文字目から、Sheet1のセルB2に何文字までと指定する方法を取りたいです。その場合、以下マクロVBAをどのように修正したらよろしいか、ご教示頂けませんでしょうか。よろしくお願い致します。Sub test()Dim sh As WorksheetDim wlink As VariantDim i As LongDim ck As BooleanDim msg As StringSet sh = ActiveSheetApplication.DisplayAlerts = Falsewlink = ActiveWorkbook.LinkSources(Type:=xlLinkTypeExcelLinks)If IsEmpty(wlink) ThenMsgBox \u0026quot;このブックにリンクはありません\u0026quot;Exit SubEnd IfOn Error Resume NextFor i = LBound(wlink) To UBound(wlink)Err.ClearActiveWorkbook.UpdateLink Name:=wlink(i)If Err.Number \u0026lt;\u0026gt; 0 Thenmsg = msg \u0026amp; \u0026quot;Err.Number=\u0026quot; \u0026amp; Err.Number \u0026amp; \u0026quot; : \u0026quot; \u0026amp; wlink(i) \u0026amp; vbCrLfck = TrueEnd IfNext iIf ck = False Thensh.Range(\u0026quot;A1\u0026quot;).Value = \u0026quot;OK\u0026quot;Elsesh.Range(\u0026quot;A1\u0026quot;).Value = \u0026quot;NG\u0026quot;MsgBox msgEnd IfExit SubApplication.DisplayAlerts = TrueEnd Sub

Excelyahoo

1件の回答

回答を書く

1106879

2026-03-29 03:40

+ フォロー

Sub test()

Dim wlink As Variant

Dim i As Long

Dim ck As Boolean

Dim tmp As String

Dim msg As String

With Worksheets(\u0026quot;Sheet1\u0026quot;)

Application.DisplayAlerts = False

wlink = ActiveWorkbook.LinkSources(Type:=xlLinkTypeExcelLinks)

If IsEmpty(wlink) Then

MsgBox \u0026quot;このブックにリンクはありません\u0026quot;

Exit Sub

End If

On Error Resume Next

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

Err.Clear

ActiveWorkbook.UpdateLink Name:=wlink(i)

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

tmp = \u0026quot;Err.Number=\u0026quot; \u0026amp; Err.Number \u0026amp; \u0026quot; : \u0026quot; \u0026amp; wlink(i)

tmp = Mid(tmp, .Range(\u0026quot;B1\u0026quot;).Value, .Range(\u0026quot;B2\u0026quot;).Value)

msg = msg \u0026amp; tmp \u0026amp; vbCrLf

ck = True

End If

Next i

If ck = False Then

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

Else

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

MsgBox msg

End If

Exit Sub

Application.DisplayAlerts = True

End With

End Sub

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

関連質問

Copyright © 2026 AQ188.com All Rights Reserved.

博識 著作権所有