7

ファイルのフルパスから拡張子を引いたものを抽出するコードがあり、拡張子なしでファイルの名前のみを保存するように変更しようとしています。

Sub ShowFilename()

Dim pathName As String
With ActiveDocument
If Len(.Path) = 0 Then
.Save
End If
If Right(.Name, 1) = "x" Then
pathName = Left$(.FullName, (Len(.FullName) - 5))
Else
pathName = Left$(.FullName, (Len(.FullName) - 4))
End If
End With
MsgBox pathName

End Sub

が表示されC:\Users\test、ドキュメントの名前はtest.docmです。これを変更してファイル名のみを表示するにはどうすればよいですか? 文字列を分割し\て最後の部分を抽出する必要がありますか?

4

6 に答える 6

6
Sub ShowFilename()
Dim pathName As String
Dim o As Document
Set o = ActiveDocument
If InStrRev(o.Name, ".") <> 0 Then
    MsgBox Left(o.Name, InStrRev(o.Name, ".") - 1)
Else
    MsgBox o.Name
End If
End Sub

最初にこれを if なしで投稿しました。これは、ファイルが保存されていないか、拡張子がない場合にエラーになります。

于 2012-07-19T16:15:36.387 に答える
1

FSO を使用してコードを書くことができなかったので (VB だけではありませんか?)、これを書きました。

Dim oldFilename As String

oldFilename = ActiveDocument.Name
If Right(oldFilename, 5) = ".docx" Then
    MsgBox ("subtract .docx")
    oldFilename = Left(oldFilename, Len(oldFilename) - 5)
ElseIf Right(oldFilename, 4) = ".doc" Then
    MsgBox ("subtract .doc")
    oldFilename = Left(oldFilename, Len(oldFilename) - 4)
Else
    MsgBox ("no extension yet")
End If
于 2014-01-21T23:02:26.533 に答える