提案されたアプローチにはいくつかの問題があります。
- 文字列を日付シリアルに変換すると問題が発生する可能性があり、Excelが日付を
dd.MMまたはとして解釈するかどうかは保証されませんMM.dd。あらかじめフォーマットがわかっているので、月と年を直接抽出してください。
\シート名の有効な文字ではありません。私は使用しまし_た、あなたが望むように代用してください
Function GetMonthandYear(FileDate As String) As String
Dim dot1 As Long, dot2 As Long
Dim m As String, y As String
dot1 = InStr(FileDate, ".")
dot2 = InStr(dot1 + 1, FileDate, ".")
m = Mid$(FileDate, dot1 + 1, dot2 - dot1 - 1)
y = Mid$(FileDate, dot2 + 1, InStr(FileDate, " ") - dot2 - 1)
GetMonthandYear = Format$(DateSerial(y, m, 1), "MMMM_yyyy")
End Function
このように呼んでください
Sub Test()
Dim FileDate As String
FileDate = "15.04.2012 16-31-18"
ActiveSheet.Name = GetMonthandYear(FileDate)
End Sub