• 締切済み

excelVBAについて。

パスからファイル名を抜き出す所で、ファイル名の拡張子を抜き出した後、別の形式で保存する用途で利用できます。とはどういう事でしょうか?教えて頂けると幸いです。

みんなの回答

  • r36vspec
  • ベストアンサー率42% (3/7)
回答No.3

拡張子を抜き出すではなくファイル名から拡張子部分を取り除く。 例えばCSVファイルをエクセルに読み込んで、加工後にCSVファイルをエクセルファイルで保存したいときに、ファイル名の拡張子だけ入れ替えたいとか、XLSで開いたブックをファイル名を変えずにXLSXで保存したいとかの用途でしょう。

すると、全ての回答が全文表示されます。
  • SI299792
  • ベストアンサー率47% (793/1659)
回答No.2

ここに書いてあることは嘘です。この本はやめて、別の参考書を買うことをお勧めします。 例えば、例にある通り、このワークブックを同じ名前でpdf 形式で保存するとします。 ファイル名には.xlsm の拡張子がついていて邪魔です。この.xlsm を消すには ・InStr 又はInStrRevで「.」 を探す。 ・Leftで. の前を取り出す。 具体的には Option Explicit ' Sub Macro1()   Dim Length As String '   Length = InStrRev(ThisWorkbook.FullName, ".") - 1   ActiveSheet.ExportAsFixedFormat xlTypePDF, _     Left(ThisWorkbook.FullName, Length) End Sub 他の形式で保存する時も.xlsx を消す必要があるので、この方法が有効です。 もっとも、.xlsm に決まっているので、以下の様にしてもいいです。 ' Sub Macro2() '   ActiveSheet.ExportAsFixedFormat xlTypePDF, _     Replace(ThisWorkbook.FullName, ".xlsm", "") End Sub

すると、全ての回答が全文表示されます。
  • luka3
  • ベストアンサー率72% (460/632)
回答No.1

ファイル名の拡張子を抜き出すのではなく、ファイル名を抜き出して別の拡張子にすげ替える、ということです。 ABC.xlsx のファイルからマクロを使ってCSVのファイルを保存したいとき、「名前を付けて保存ダイアログ」を出してユーザーにファイル名を入力してもらうより、自身のファイル名から拡張子を変えて ABC.csv で保存した方がユーザーに優しい(かもしれない)ということです。 かもしれない、というのは、目的や運用によってそれがいいか悪いか変わるためです。

すると、全ての回答が全文表示されます。

関連するQ&A