アプリ版:「スタンプのみでお礼する」機能のリリースについて

A列のA2以降に各ファイルのフルパスがあります。
フォルダを移動したり、削除したりでクリックしても「指定したファイルを開くことができません」となります。
これをブックを開くと同時に実在するか調べて、リンク切れであれば色を付けると同時に「赤色文字はリンク切れです。削除しますか?」とメッセージして、「はい・いいえ」で判断するようなコードを教えていただけないでしょうか。そもそもURLなら聞いたことがあるのですが、フォルダやファイルの有無や名前の差異を調べて・・・というのができることなのかわからないのですが・・・

A 回答 (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以降となっている。
提示したコードではそれは関係ないのですが、場合によっては関係することがあるので、
質問をするときは何度も読み返して投稿した方がいいでしょう。

以上。
 
    • good
    • 0
この回答へのお礼

ふたたびありがとうございました。快適に動作します。このようなコードつくれるようになりたいです。いろいろ教えてくださりありがとうございました。

お礼日時:2008/04/19 11:57

質問の場合はファイルの有無を調べればいいから。


例えば、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以降にあります。なにかコードに邪魔しているでしょうか?

補足日時:2008/04/19 08:43
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!