Microsoft ExcelでVBAを使用してファイルパスからファイル名やフォルダ名を抽出
この記事では、ファイルパスからファイル名とフォルダー名を抽出するためのカスタム関数を作成するためのVBAコードを共有しました。
この例の生データは、特定のファイルのフルパスを指定します。
ロジックの説明
この例では、ファイル名またはフォルダー名を出力として返すVBAカスタム関数「FileOrFolderName」を作成しました。
「fileOrFolderName」関数は、入力として2つのパラメーターを取ります。最初のパラメータはファイルパスを入力として受け取ります。 2番目のパラメーターは入力としてブール値を取ります。出力としてファイル名が必要な場合はこのパラメーターにTrue値を割り当て、出力としてフォルダー名が必要な場合はこのパラメーターにFalse値を割り当てます。
ファイル名とフォルダー名をファイルパスから分離するために、最初に、ファイルパス内でパス区切り文字が最後に出現する場所を見つけます。パス区切り文字が最後に出現した後、ファイル名とフォルダー名をテキストとして簡単に区切ることができます。パス区切り文字の右側にはファイル名があり、パス区切り文字の左側にはフォルダー名があります。
ファイルパスにパス区切り文字が存在しない場合は、デフォルトのディレクトリパスがフォルダ名として指定されます。
カスタム関数の実行
定義済みのカスタム関数を使用するには、セルC14に移動して関数= FileOrFolderName(B14、FALSE)を入力し、セルD14に関数= FileOrFolderName(B14、TRUE)を入力します。セルB14にはファイルパスが含まれます。
セルC14はフォルダ名を示し、セルD14はファイル名を示します。
コードについては以下に従ってください
Function FileOrFolderName(InputString As String, _ ReturnFileName As Boolean) As String 'Returns the foldername or the filename based on boolean value assigned Dim i As Integer, FolderName As String, FileName As String i = 0 'Code used for finding the position of last occurence of path separator While InStr(i + 1, InputString, Application.PathSeparator) > 0 i = InStr(i + 1, InputString, Application.PathSeparator) Wend 'Extract the folder path 'If No occurence of path separator is found then assign the default directory path If i = 0 Then FolderName = CurDir Else FolderName = Left(InputString, i - 1) End If 'Extracting the file name FileName = Right(InputString, Len(InputString) - i) 'Returning the folder or file name from function based on ReturnFileName parameter If ReturnFileName Then FileOrFolderName = FileName Else FileOrFolderName = FolderName End If End Function
このブログが気に入ったら、FacebookやFacebookで友達と共有してください。
皆様からのご意見をお待ちしております。私たちの仕事を改善し、あなたのために改善する方法をお知らせください。 [email protected]までご連絡ください