FileSystemObjectのBuildPathメソッド
FileSystemObjectのBuildPathメソッドは、フォルダパスとその配下のフォルダ名やファイル名を連結した文字列を作成します。連結時にパス区切り文字が必要な場合は付与されます。
フォルダパスやファイルパスの文字列を作成するだけで、実際のフォルダやファイルは作成されません。
FileSystemObjectの他のメソッドやプロパティは「FileSystemObjectとTextStreamのメソッド・プロパティ一覧」をご参照ください。
構文
Function BuildPath(Path As String, Name As String) As String
Path | 絶対パスまたは相対パスを指定します。末尾にパス区切り文字の¥マークはあってもなくてもどちらでも構いません。 |
Name | 連結するフォルダ名やファイル名を指定します。 |
戻り値 | 第一引数と第二引数を連結した文字列を返します。連結する際に第一引数または第二引数にパス区切り文字の¥や/がある場合はそちらを採用し、なければ¥マークで連結します。 |
エラー対応
BuildPathメソッドは引数の文字列を連結するだけのためよほどのことがない限りエラーは発生しません。
発生するとすれば引数に文字列として認識できない値を渡した場合ぐらいになります。
引数のデータ型不正の場合は「エラー:438 オブジェクトは、このプロパティまたはメソッドをサポートしていません。」のエラーが発生します。
エラーが発生するとメッセージボックスが表示され、処理はそこで止まってしまいます。
処理を止めないようにするためにはエラー処理を適切に行う必要があります。
具体的には「On Error Goto XXX」でエラー発生時にエラーラベルまで処理を飛ばしたり、「On Error Resume Next」でエラーが発生しても処理を継続するようにしておいたほうがよいでしょう。
ただ、BuildPathメソッドについてはまずエラーは起きないため、エラー処理はなくてもほとんどの場合で問題は起きないと思われます。
事前設定
以下のサンプルコードでは参照設定でFileSystemObjectクラスを利用できるようにしています。
FileSystemObjectクラスを利用するには、事前にVBA画面→ツールメニュー→参照設定、を選択し、参照設定ダイアログで「Microsoft Scripting Runtime」にチェックを付けます。
詳細は「VBAでのFileSystemObjectとTextStreamの使い方」の事前設定をご参照ください。
サンプルコード
アクティブブックのパスとテキストファイル名を連結するサンプルです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
Sub FileSystemObjectBuildPath() On Error GoTo ERR_LABEL Dim fso As New FileSystemObject '// FileSystemObjectクラス Dim sPath As String '// パス Dim sName As String '// 連結する名前 Dim sResult As String '// 連結五文字列 '// アクティブブックのパスを設定 sPath = ActiveWorkbook.Path '// テキストファイル名を設定 sName = "test.txt" '// パスを連結 sResult = fso.BuildPath(sPath, sName) Debug.Print sResult ERR_LABEL: '// エラー発生時 If Err.Number <> 0 Then '// エラー内容を出力 Debug.Print Err.Number & " " & Err.Description End If End Sub |
実行結果
C:¥aaa¥test.txt
一応エラー処理は入れていますが、まずエラーは発生しないと思います。
FileSystemObjectのオブジェクト変数に対して、「Set fso = Nothing」のようなコードがありませんが、なくても問題ありません。
詳細については「VBAでのFileSystemObjectとTextStreamの使い方」をご参照ください。