【VBA入門】ファイル選択後、フルPATHをフォルダ+ファイル名に分割したい

ツール仕様によっては、「対象となるExcelファイルを指定する」シーンも多いと思います。
ファイルのフルPATHを格納フォルダとファイル名に分割する方法を紹介します。


「処理の対象となるファイルを指定する」

Excel業務効率化ツールでは、「フォルダ選択」や「ファイル選択」という操作や仕様は、設計上、避けて通れません。

みなさん、こんにちは。セルネッツ竹本です。

今回は、「PATHの分割」をテーマに、解説をしたいと思います。

◆特定のファイル選択により得られる情報

↓(A)Call する側の記述

Call M_PATHブック指定("01", P_FullPath, P_GetPath名, P_GetFile名)


↓(B)Callされる側の分割Module

Public P_FullPath As String
Public P_GetFile名 As String
Public P_GetPath名 As String

‘※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
Sub M_PATHブック指定(P_BTN区分 As String, P_FullPath, P_GetPath名, P_GetFile名)
‘※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
Dim S_文言 As String

CreateObject("Wscript.shell").CurrentDirectory = ThisWorkbook.Path

Select Case P_BTN区分

    Case "01"
        S_文言 = "[入力ファイル] (*.xlsx)ファイルを指定して下さい。"
        P_FullPath = Application.GetOpenFilename("Excelファイル,*.xlsx", , S_文言)

    Case "02"    '(補足:*.pdf *.txt *.csv など区分に応じて)

    Case Else

End Select

P_GetFile名 = Dir(P_FullPath)

Dim S_位置 As Long

S_位置 = InStrRev(P_FullPath, "\")

P_GetPath名 = Left(P_FullPath, S_位置)

End Sub


【Point】ファイル指定は、1Module内に集約すること。複数Moduleに分散するとバグリスクがUP

◆取得後の分割結果


上記のように、ファイルのフルPATHを、

(1)格納先PATH (2)ファイル名 に分割することができます。


どんなケースで便利なのか、事例をあげると。

入力ファイルとして読み込んだ格納先と同じ場所に、1セットとなるよう結果を保存したい。

このような要望が多いためです。


今回のテーマは、「PATHの分割」について、解説を行いました。

本記事が、Excel実務の効率化において、ご参考お役立てになれば幸いです。


全国対応!お気軽にお問い合わせください