文字列が渡されることによって開始され、文字列がファイルであるかどうかに応じて、フォルダまたはWebのURL。VBA - 文字列がファイル、フォルダ、またはWeb URLであるかどうかを確認する
FYI - ファイルの場合リポジトリにファイルをコピーするフォルダの場合、ショートカット.lnkを作成してリポジトリにコピーし、ウェブURLの場合はショートカット.urlをコピーしてコピーしますリポジトリ。
私は解決法を開発しましたが、十分に堅牢ではありません。私は文字列を誤って識別することから時々間違いを受けます。私が使用した方法は、文字列内のドットをカウントし、ルールを適用することでした。
If Dots = 1 Then... it's a file.
If Dots < 1 Then... it's a folder.
If Dots > 1 Then... it's a website.
私は、私はウェブ上で発見機能のカップルを使用して、これを改善:
Dots = Len(TargetPath) - Len(Replace(TargetPath, ".", "")) ' Crude check for IsURL (by counting Dots)
If CheckFileExists(TargetPath) = True Then Dots = 1 ' Better check for IsFile
If CheckFolderExists(TargetPath) = True Then Dots = 0 ' Better check for IsFolder
トラブルがあり、私はまだ2つの状況で問題があります:
ファイル名に追加のドットが含まれる場合
\Report.01.doc
文字列がリモートイントラネット上のファイルまたはフォルダの場合(これはWeb URLとして誤っている可能性があります)。
正しい方向のポインタがあれば幸いです。
トム・H
あなたはhttp://stackoverflow.com/questions/161738/what-is見たいかもしれません-the-best-regular-expression-to-a-string-of-a-valid-url – Fionnuala
応答に感謝します。正規表現のメソッドはVBAで利用できますか?これは私が何をしたかのように見える。 – FrugalTPH
はい、それらは 'CreateObject(" vbscript.regexp ")'またはWindowsスクリプトホストオブジェクトへの参照を設定します。あなたはこの種のもののための正規表現をたくさん見つけるでしょう。また、FileSystemObjectを見たいかもしれません。それはかなり良い方法がいくつかあります。 – Fionnuala