• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ファイルの有無を判定してからリンクをはりたい)

ファイルの有無を判定してからリンクをはりたい

このQ&Aのポイント
  • VBAを使用して、ファイルの有無を判定してからリンクを作成したい場合、自作の関数を使用することができます。
  • ただし、存在しないファイルを開こうとするとエラーが発生するため、エラー処理を行う必要があります。
  • 関数を使用してファイルの有無を判定し、存在する場合のみリンクを作成するようにすることで、エラーを回避することができます。

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

  • ベストアンサー
  • hige_082
  • ベストアンサー率50% (379/747)
回答No.3

すいません 質問をよく読んでいませんでした =IF(isFileExist("aaa.pdf"),HYPERLINK("aaa.pdf","ファイルを見る"),HYPERLINK(,"ファイルはありません")) とするしかないようです 仕様、バグ??

msndance
質問者

お礼

それでうまくいきました!HYPERLINK関数の第1引数を空にするという方法もあるんですね!

その他の回答 (2)

  • hige_082
  • ベストアンサー率50% (379/747)
回答No.2

これはどうでしょう? '-------------------------------------------------- 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 へ、変更するとどうなります

msndance
質問者

お礼

ありがとうございました。結果的にはno3さんの方法でうまくいきましたので次点にしたいと思います

  • hige_082
  • ベストアンサー率50% (379/747)
回答No.1

HYPERLINK関数のヘルプに ファイルはフルパスで指定してくださいと書いてありますが パスは指定してますか FileExistsの方もパスが必要のようですが C:\My Documents\ のフォルダにファイルが保存されている場合は =IF(isFileExist("C:\My Documents\aaa.pdf"),HYPERLINK("C:\My Documents\aaa.pdf","ファイルを見る"),"ファイルはありません") としなければエラーになります

msndance
質問者

補足

フルパスで指定しています。IF文の第1引数が真になる、すなわちファイルがあるときはセルをクリックするとPDFがきちんと開かれることを確認しています。問題はファイルがない場合、IF文の第1引数が偽になるので「ファイルはありません」と出るだけのはずなのに、ファイルを参照しにいって「開くことができません」といってくることです。

関連するQ&A