- ベストアンサー
ファイルの有無を判定してからリンクをはりたい
- VBAを使用して、ファイルの有無を判定してからリンクを作成したい場合、自作の関数を使用することができます。
- ただし、存在しないファイルを開こうとするとエラーが発生するため、エラー処理を行う必要があります。
- 関数を使用してファイルの有無を判定し、存在する場合のみリンクを作成するようにすることで、エラーを回避することができます。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
すいません 質問をよく読んでいませんでした =IF(isFileExist("aaa.pdf"),HYPERLINK("aaa.pdf","ファイルを見る"),HYPERLINK(,"ファイルはありません")) とするしかないようです 仕様、バグ??
その他の回答 (2)
- hige_082
- ベストアンサー率50% (379/747)
これはどうでしょう? '-------------------------------------------------- Function isFileExist(Filename As String) As Boolean If Dir(Filename) <> "" Then isFileExist = True Else isFileExist = False End If End Function '--------------------------------------------------- この他に Dim FSO As Object を Dim FSO As String へ、変更するとどうなります
お礼
ありがとうございました。結果的にはno3さんの方法でうまくいきましたので次点にしたいと思います
- hige_082
- ベストアンサー率50% (379/747)
HYPERLINK関数のヘルプに ファイルはフルパスで指定してくださいと書いてありますが パスは指定してますか FileExistsの方もパスが必要のようですが C:\My Documents\ のフォルダにファイルが保存されている場合は =IF(isFileExist("C:\My Documents\aaa.pdf"),HYPERLINK("C:\My Documents\aaa.pdf","ファイルを見る"),"ファイルはありません") としなければエラーになります
補足
フルパスで指定しています。IF文の第1引数が真になる、すなわちファイルがあるときはセルをクリックするとPDFがきちんと開かれることを確認しています。問題はファイルがない場合、IF文の第1引数が偽になるので「ファイルはありません」と出るだけのはずなのに、ファイルを参照しにいって「開くことができません」といってくることです。
お礼
それでうまくいきました!HYPERLINK関数の第1引数を空にするという方法もあるんですね!