- ベストアンサー
Excelシートの無効リンク確認方法
- Excelシートの無効リンクを確認する方法について解説します。シート内のリンクを一括でチェックし、リンクの切れた部分を特定する方法をご紹介します。
- Excelシートの無効リンクの確認方法について解説します。リンク切れの可能性がある部分を自動的に特定し、効率的にリンクの修正を行う方法をご紹介します。
- Excelシートの無効リンクを見つける方法について解説します。リンクが切れたセルを検出し、迅速に修正できる手順をご紹介します。
- みんなの回答 (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
お礼
昨夜リストの結果を検証して間違いないことを確認しました。 特定の部署のフォルダーが一式抜けていることが分かりました。 恐らくフォルダーを移動させたと思われます。 この業務は最近引き受けたものでメンテの方法が見えました。 前回のご回答を含め、改めて感謝!&お礼申し上げます。
補足
早々のご回答、試してみて驚きの結果です。 なんと1発で全997件の検索結果が、しかも希望通りのリスト表記で得られました。(やはり多くのファイルが移動、削除されていました) 詳細な検証結果はこれからやりますのでBS(締め切り)はそれからにさせて頂きます。(当方の場合何か起こると対処できないレベルですので) ●質問にアップしたコードは >別の方から回答頂いた下記のコードで動作確認できたのでBSを選んで締め切った・・・ ということでHohoPapaさんではありません。 ============================== <別件> 先日教えて頂いた、”エクセルシートをpdfファイルで添付して、メールを起動させる”、というコードは試行してみて動かなかったので、「当方には難しすぎて使えそうもない」とギブアップ宣言してあきらめたのですが、その後良くヨク見て、どうもセル番地が(1,1)(1,2)となっているようなので、無駄と思いながら試しに所定のセルの行,列を入れて見たところ、なんと目的の結果が得られ、ビックリX2しました。 定型書式が多いのでセル番地が同じなので、シート名に関係なく全シートで使えるのは本当に有用です。 ワードからのコードのコピペで他ファイルへの適用が可能! しかし、補足欄もお礼欄も使ってしまっていましたので、この場をお借りして改めて御礼申し上げます。(これが今回指名させて頂いた理由の1つでもあります) お手数をお掛けしました。 今後ともよろしくお願い致します。(長々と失礼)