「C:\tmp」というフォルダに「hoge.txt」があるとする。
このhoge.txtを指定するには「C:\tmp\hoge.txt」と指定しなければいけない。
しかしこのとき、フォルダの末尾に「\」がちゃんと書いていないと、
「フォルダ」と「パス」が別々に指定されていたときに、ファイルをちゃんと見つけることができない。
具体的には、このような場合だ。
フォルダとファイルが別セル書かれている。
それぞれの値を利用して、ファイルを開きたいが、パスの末尾にセパレータが書いてあるかはわからない。
なので、ちゃんとセパレータをチェックしよう。
コード例
以下のサンプルでは、フォルダの末尾が「\」であるかを確認して、「\」でなかった場合に「\」を追加している。
Option Explicit
Sub ファイルのパスを調べる()
Dim orgFolderPath As String
Dim fileName As String
orgFolderPath = Cells(3, 2).Value
fileName = Cells(4, 2).Value
MsgBox ("BEFOER:" + orgFolderPath + fileName)
orgFolderPath = addSeparator(orgFolderPath)
'addSeparator (orgFolderPath) これだとC:\tmphoge.txtとなる
MsgBox ("AFTER:" + orgFolderPath + fileName)
End Sub
Function addSeparator(ByVal orgPath As String)
Dim stringLength As Integer
Dim endString As String
endString = Right(orgPath, 1)
If (endString <> "\") Then
addSeparator = orgPath & "\"
Else
addSeparator = orgPath
End If
End Function
実行結果
実行結果はこのようになる。
セパレータを削除する
逆にセパレータを削除するには以下のような関数を使うといい。
Function removeSeparator(ByVal orgPath As String)
Dim stringLength As Integer
Dim endString As String
Dim cutPoint As Integer
removeSeparator = orgPath
stringLength = Len(orgPath)
cutPoint = stringLength - 1
endString = Right(orgPath, 1)
If (endString = "\") Then
removeSeparator = Left(orgPath, cutPoint)
End If
End Function
¥2,618
(2023/09/22 10:10:54時点 Amazon調べ-詳細)
お金があるかないかで人生の楽しさは全く変わってきます。
お金があっても幸せになれるとは限りませんが、お金がない人生は不幸です。
お金がなかった私が、転職して年収1000万を超えるまでにお世話になったブログを紹介します。
エンジニア転職のリアル
今の時代は、お金を稼げるかどうかは能力の有無よりも触れた情報の質によるものが大きいです。
ぜひ皆さんも良質な情報に触れて、お金持ちになって人生を充実させてください。