A列のA2以降に各ファイルのフルパスがあります。
フォルダを移動したり、削除したりでクリックしても「指定したファイルを開くことができません」となります。
これをブックを開くと同時に実在するか調べて、リンク切れであれば色を付けると同時に「赤色文字はリンク切れです。削除しますか?」とメッセージして、「はい・いいえ」で判断するようなコードを教えていただけないでしょうか。そもそもURLなら聞いたことがあるのですが、フォルダやファイルの有無や名前の差異を調べて・・・というのができることなのかわからないのですが・・・
No.2ベストアンサー
- 回答日時:
再度の登場、onlyromです。
VBAのコードということでしたので、
当然ながら少々の修正であればできるだろうとの判断でのコードでした。
ただ、幾らなんでも
>リンク切れしていないフルパスも「リンク切れです」とのメッセージになります
これはありえません。
が、それを言っても詮無い事ゆえ、本題。
(前提条件)
●フルパスは、 A列に入力されてる
●フルパスは、 C:\任意フォルダ\売上.xls のような形で入力されいる
もちろん、任意フォルダーはあってもなくてもOK。
上記を確認のうえちょこと修正した以下のコードを実行。
'----------------------------------------------------
Sub Auto_Open()
Dim R As Long
Dim myFile
Dim Msg
Sheets("Sheet1").Select
For R = 1 To Cells(Rows.Count, "A").End(xlUp).Row
If InStr(Cells(R, "A"), "\") > 0 Then
myFile = Dir(Cells(R, "A").Value)
If myFile = "" Then
Cells(R, "A").Interior.ColorIndex = 3
Msg = MsgBox(Cells(R, "A").Value & " は無い、リンク解除する?", vbYesNo, "確認")
If Msg = vbYes Then
Cells(R, "A").Hyperlinks.Delete
End If
End If
End If
Next R
MsgBox "リンク切れチェック終了"
End Sub
'----------------------------------------------
上記コードで動作しないようなら、実際のデータを提示してくだされ。
それから、最初の質問では、A2以降にフルパスとなっているが、補足ではA3以降となっている。
提示したコードではそれは関係ないのですが、場合によっては関係することがあるので、
質問をするときは何度も読み返して投稿した方がいいでしょう。
以上。
ふたたびありがとうございました。快適に動作します。このようなコードつくれるようになりたいです。いろいろ教えてくださりありがとうございました。
No.1
- 回答日時:
質問の場合はファイルの有無を調べればいいから。
例えば、Sheet1 の A列1行目からフルパスがあるとして。
標準モジュールに以下のコードを。
'--------------------------------------------
Sub Auto_Open()
Dim R As Long
Dim myFile
Dim Msg
Sheets("Sheet1").Select
For R = 1 To Cells(Rows.Count, "A").End(xlUp).Row
myFile = Dir(Cells(R, "A").Value)
If myFile = "" Then
Cells(R, "A").Interior.ColorIndex = 3
Msg = MsgBox(Cells(R, "A").Value & " は無い、リンク解除する?", vbYesNo, "確認")
If Msg = vbYes Then
Cells(R, "A").Hyperlinks.Delete
End If
End If
Next R
MsgBox "リンク切れチェック終了"
End Sub
'---------------------------------------------------
(注意)
プロシージャー名を Auto_Open にするとブックを開いたときに
ここに書かれたコードが実行されるので名前は絶対に変更しないこと。
以上。
この回答への補足
onlyromさんありがとうございました。こうやってコード化できるのってすごいなぁと思います♪
使わせていただいたところ、リンク切れしていないフルパスも「リンク切れです」とのメッセージになります。私のシート上の設定が悪いのかもしれません。今A1の見出しにはオートシェイプで「ハイパーリンク」と入れてあります。つまり文字は入力されていません。A2は都合上空白です。ハイパーリンク化されているフルパス、ハイパーリンク化されていないフルパスはA3以降にあります。なにかコードに邪魔しているでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルのマクロについて教えてください マクロを実行すると メッセージボックスが表示されて okをク 4 2023/07/05 19:32
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/08 11:02
- その他(コンピューター・テクノロジー) <a href="file:///フォルダ名/ファイル名">リンクテキスト</a>について 1 2023/04/06 22:40
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/06 17:46
- Excel(エクセル) Excelを開くとエラーが出る 2 2022/10/03 16:13
- Excel(エクセル) フォルダ内のエクセルファイルを開かずにデータ採取する関数式 2 2022/12/22 22:15
- Excel(エクセル) マクロのコードを、少しでも削って短くしたい 3 2022/08/30 07:46
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/05/24 08:33
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/07/03 09:11
- Excel(エクセル) フォルダAから1つのファイルだけを、フォルダBへを移動するVBAについて 2 2022/07/25 11:45
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ギターのTAB譜の記号 N.C....
-
草刈の際に電源ケーブルを切断...
-
VBA ダブルクリックするたびに...
-
◎PPMのコードをお教えいただ...
-
Jeff Beck「Red Boots」のコー...
-
キングクリムゾンの「スターレ...
-
Gmailを開いた状態でもうひとつ...
-
USBが固くて外れません
-
片側がUSBで片側がイヤホンジャ...
-
ギターのコード?見ただけでど...
-
スライドギター、オープンチュ...
-
ドライアーのコードから煙が出...
-
先日、電気コードに熱いお湯か...
-
マイクロソフト 一時使用コード...
-
マイナーの裏コードは存在する?
-
パソコンから出てる有線コード...
-
「白いパラソル」のコード進行
-
ギターでコードを押さえていた...
-
ベース 初心者 バンド キー
-
ナイロン紐式草刈機の紐が回転...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBA ダブルクリックするたびに...
-
ギターのTAB譜の記号 N.C....
-
マイクロソフト 一時使用コード...
-
片側がUSBで片側がイヤホンジャ...
-
JAN コードとITFコードの違い...
-
Gmailを開いた状態でもうひとつ...
-
ドライアーのコードから煙が出...
-
ギターのコード?見ただけでど...
-
マイクロソフト OFFICEが 安い...
-
JANコード、ITFコードの作成
-
DLookupがうまく出来ません
-
CODE関数から他の文字コードの...
-
コード
-
音感
-
【マクロ】文字を1文字づつ、...
-
◎PPMのコードをお教えいただ...
-
D7alt
-
ギターで2弦2フレットと3弦2フ...
-
コードを白く塗りたい
-
【EXCEL-VBA】PDFファイルを開...
おすすめ情報