• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセルシートの無効リンクの確認)

Excelシートの無効リンク確認方法

このQ&Aのポイント
  • Excelシートの無効リンクを確認する方法について解説します。シート内のリンクを一括でチェックし、リンクの切れた部分を特定する方法をご紹介します。
  • Excelシートの無効リンクの確認方法について解説します。リンク切れの可能性がある部分を自動的に特定し、効率的にリンクの修正を行う方法をご紹介します。
  • Excelシートの無効リンクを見つける方法について解説します。リンクが切れたセルを検出し、迅速に修正できる手順をご紹介します。

質問者が選んだベストアンサー

  • ベストアンサー
  • HohoPapa
  • ベストアンサー率65% (455/693)
回答No.1

なにやら、私の名前が登場していますが、私がポストしたコードでしたっけ? ともあれ、次のようなコードを提案します。 よかったら試してみてください。 Option Explicit '// リンク状況確認 Sub LinkCheck()  Dim Rowcnt As Long  Dim wklink As String  With ThisWorkbook.Sheets(1)   Rowcnt = 2   Do    If .Cells(Rowcnt, 4).Value = "" Then Exit Do    Worksheets(2).Cells(Rowcnt, 1) = .Cells(Rowcnt, 4).Value    Worksheets(2).Cells(Rowcnt, 2) = .Cells(Rowcnt, 4).Address    If .Cells(Rowcnt, 4).Hyperlinks.Count > 0 Then     wklink = .Cells(Rowcnt, 4).Hyperlinks(1).Address     Worksheets(2).Cells(Rowcnt, 4) = wklink     If FileExists(wklink) = True Then      Worksheets(2).Cells(Rowcnt, 3) = "ファイルあり"     Else      Worksheets(2).Cells(Rowcnt, 3) = "ファイル無し"     End If    Else      Worksheets(2).Cells(Rowcnt, 3) = "リンク未設定"    End If    Rowcnt = Rowcnt + 1   Loop  End With End Sub '// ファイル有無判定関数 Function FileExists(ChkFile As String) As Boolean  FileExists = True  On Error GoTo ErrorHandler     ' エラー処理ルーチンを定義  FileDateTime (ChkFile)  On Error GoTo 0          ' エラーのトラップを無効にします。  Exit Function           ' エラー処理ルーチンが実行されないように Sub を終了 ErrorHandler:            ' エラー処理ルーチン  FileExists = False  Resume Next End Function

akira0723
質問者

お礼

昨夜リストの結果を検証して間違いないことを確認しました。 特定の部署のフォルダーが一式抜けていることが分かりました。 恐らくフォルダーを移動させたと思われます。 この業務は最近引き受けたものでメンテの方法が見えました。 前回のご回答を含め、改めて感謝!&お礼申し上げます。

akira0723
質問者

補足

早々のご回答、試してみて驚きの結果です。 なんと1発で全997件の検索結果が、しかも希望通りのリスト表記で得られました。(やはり多くのファイルが移動、削除されていました) 詳細な検証結果はこれからやりますのでBS(締め切り)はそれからにさせて頂きます。(当方の場合何か起こると対処できないレベルですので) ●質問にアップしたコードは >別の方から回答頂いた下記のコードで動作確認できたのでBSを選んで締め切った・・・ ということでHohoPapaさんではありません。 ============================== <別件> 先日教えて頂いた、”エクセルシートをpdfファイルで添付して、メールを起動させる”、というコードは試行してみて動かなかったので、「当方には難しすぎて使えそうもない」とギブアップ宣言してあきらめたのですが、その後良くヨク見て、どうもセル番地が(1,1)(1,2)となっているようなので、無駄と思いながら試しに所定のセルの行,列を入れて見たところ、なんと目的の結果が得られ、ビックリX2しました。 定型書式が多いのでセル番地が同じなので、シート名に関係なく全シートで使えるのは本当に有用です。 ワードからのコードのコピペで他ファイルへの適用が可能! しかし、補足欄もお礼欄も使ってしまっていましたので、この場をお借りして改めて御礼申し上げます。(これが今回指名させて頂いた理由の1つでもあります) お手数をお掛けしました。 今後ともよろしくお願い致します。(長々と失礼)