• ベストアンサー

ファイル名のみを取得するには?

Sub 取得() MsgBox ActiveWorkbook.Name End Sub を実行すると 「エクセル.xls」 と取得されますが 拡張子を除いたファイル名だけを取得するにはどうすればいいでしょうか? 「エクセル」だけを取得したいです。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
noname#90572
noname#90572
回答No.3

作ってみました Sub 取得() Dim bkName As String bkName = ActiveWorkbook.Name MsgBox Left(bkName, InStrRev(bkName, ".") - 1) End Sub 説明:  ・ファイル名に.(ドット)が含まれていても正常に動作します。  ・2007形式の4文字の拡張子にも対応できます。

chdyet
質問者

お礼

ありがとうございます。

その他の回答 (2)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

多分加工して出さないと、XLSを除く部分に名称もついてないのでは。 小生の不知だけの恐れも有る。 一法は Sub 取得() MsgBox Split(ActiveWorkbook.Name, ".")(0) End Sub

chdyet
質問者

お礼

ありがとうございます。

  • hige_082
  • ベストアンサー率50% (379/747)
回答No.1

Sub 取得() MsgBox left(ActiveWorkbook.Name,len(ActiveWorkbook.Name)-4) End Sub

chdyet
質問者

お礼

右から4文字削っちゃえばいいんですね!ありがとうございます。