• ベストアンサー

FileSystemObjectでフォルダ名取得

http://officetanaka.net/excel/vba/filesystemobject/filesystemobject.htm このページにファイル名から、拡張子やドライブ名などを出力する方法が書かれていますが ファイルが入っているフォルダ名を取得するコマンドはございますでしょうか? 例えば、 C:\xxxx\yyyy.txt の場合、 C:\xxxx\ を取得したいのですが、コマンドはありますか?

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

  • ベストアンサー
  • watabe007
  • ベストアンサー率62% (476/760)
回答No.1

参考に With CreateObject("Scripting.FileSystemObject")   MsgBox .GetParentFolderName("C:\xxxx\yyyy.txt") End With

BUCHURUN
質問者

お礼

ありがとうございます。 うまくいきました。 あと、拡張子を抜いたパス名を取得することは可能ですか? ("C:\xxxx\yyyy.txt") の場合 ("C:\xxxx\yyyy") を取得したいのですが。  

その他の回答 (2)

  • watabe007
  • ベストアンサー率62% (476/760)
回答No.3

>あと、拡張子を抜いたパス名を取得することは可能ですか? >("C:\xxxx\yyyy.txt") の場合 ("C:\xxxx\yyyy") >を取得したいのですが。 [例1] Dim myPath As String myPath = "C:\xxxx\yyyy.txt" With CreateObject("Scripting.FileSystemObject")   MsgBox .GetParentFolderName(myPath) & "\" & .GetBaseName(myPath) End With [例2]InStrRev関数を使って Dim myPath As String, n As Long myPath = "C:\xxxx\yyyy.txt" n = InStrRev(myPath, ".") MsgBox Left(myPath, n - 1)

  • chie65535
  • ベストアンサー率43% (8520/19369)
回答No.2

関連するQ&A

  • フォルダ内全ファイルをシート毎に貼付方法について

    VBA仙人様ご教授お願い致します。 1フォルダに数十のログファイル(.txt)が格納されています。 1ファイルは3~5万行記述あります。 これを1つのExcelファイルにしたいと思っています。 VBA流れとして (1)ログ格納フォルダを選択 (2)ログファイル名を取得 (3)既存Excelファイルに(2)で取得したファイル名(.txt除いた)で順次シートを追加 (4)ログファイル=シートとなるようにファイル読み込み/貼り付け (5)ログファイルを閉じる VBAイメージ 格納フォルダ:C:\test \test内    :A001.txt,A002.txt,B003.txt・・・・・・・・Z051.txt(このフォルダにはログのみ格納) C:デスクトップ\集計マクロ.excel (VBAの記述のあるExcelシートにはSheet1のみが存在) VBA前 集計マクロ.excel/Sheet1 VBA実行後 集計マクロ.excel/Sheet1,A001,A002,B003,D004・・・・・・・・・Z051が追加、シート毎にログ情報記載 単一ファイルの読み込み/ファイル名をシート名に付与/情報コピペ/ファイル閉じについては、 作成できたのですが、複数ファイルの場合のファイル名を順次取得し、シート名として付与するなど objやValiant変数などで試行錯誤しましたが解決できず、こちらに質問されていただきました>< このVBAで作成されたシートからの集計マクロについては完成していますが、 その手前でつまづいています>< ご教授のほどお願い致します><

  • サブフォルダ内のフォルダ名取得

    連続処理のため、特定フォルダ以下のフォルダ名全てを取得する必要があります。 そこで本に書いてあったコードを試してみたのですが、フォルダ以下のサブフォルダまでしか取得できませんでした。 サブフォルダ以下にもフォルダがあるのですが、どのようにして取得すればいいのでしょうか? ↓以下が試してみてコードになります With CreateObject("Scripting.FileSystemObject")  With .getfolder(Start_Path)   For Each Obj_Folder In .subfolders    WorkSheets.Cells(i, 2).Value = Obj_Folder.name    i = i + 1   Next Obj_Folder  End With End With

  • 正規表現で絶対パス表示のファイル名からファイル名だけを削除したい

    Perlの正規表現を使って c:\xxxx\xxxx\xxxx\xxxx\abc.txt のようにファイルの絶対パスで記述されている文を c:\xxxx\xxxx\xxxx\xxxx のように ファイル名部分だけを削除して、 フォルダの絶対パスに 表示させる正規表現を教えていただけないでしょうか? ちなみにxxxxは可変値、階層の深さも決まっておらず、 ファイルの拡張子もtxt,htm,拡張子なしなどです。 よろしくお願いいたします。

    • ベストアンサー
    • Perl
  • DOSのコピーコマンド

    このカテゴリーで良いかどうかわかりませんが、教えてください。(説明が下手ですみませんが) Cドライブのあるフォルダーの中のファイル(1つまたは複数)をDドライブにコピーするバッチファイルを作ろうと思います。 たとえばyyyyフォルダーのzzzzをコピーする場合は次のような1文です。 xcopy c:\yyyy\zzzz.* d:\ /e この時、フォルダー名にスペースがあるときはどうしたらいいのかわかりません。 たとえばc:\windows updateのようなフォルダー名の場合 xcopy c:\yyyy xxxx\zzzz.* d:\ /e では動きません(yyyyとxxxxの間にスペースがあるから)。 この場合DOSコマンドをどう書けば良いのか教えてください。

  • エクセルのマクロ

    エクセルのマクロ(VBA?)で、あるフォルダ内のファイル名を取得する(拡張子が.txtのもだけ)関数があれば教えてほしいのですが・・・

  • ひとつ前のフォルダ名取得方法

    こんにちは、 JAVAでファイルパスから ひとつ前のフォルダ名を取得したいのですが どのようにするべきでしょうか? C:\Users\ky\Desktop\東西\rem.jpg から 東西を取得したい

    • ベストアンサー
    • Java
  • FileSystemObjectのGetFolderで取得できるファイルの並び順

    お世話になっております。 Access2002VBAを使用しております。 サンプルを以下に示します。 '------------------------ Set FS = CreateObject("Scripting.FileSystemObject") Set obF = FS.GetFolder(RD & ":\" & RP) Set colF = obF.Files For Each F In colF '各ファイルアクセス Next Set FS = Nothing Set obF = Nothing Set colF = Nothing Set F = Nothing '------------------------ 特定のフォルダ内の全ファイルをアクセスする プログラムを作成しております。 この際、ファイル名の昇順、もしくは作成年月日、更新年月日の昇順にファイルをアクセスしたいのですが、 FileSystemObjectを使用して、ファイルを順当に取得する 方法がわかりません。 もしそのような方法がなければ、 配列にファイル名、年月日を入れて、 擬似的に並べ替えをおこなうか、 作業用テーブルにファイル名、年月日を入れて、 order by で取得しなおして、順当にファイルアクセス とおもっております。 FileSystemObjectのGetFolderメソッドで 取得できるファイルは何の順番で取得されるのでしょうか。 また何れか、もしくはその他よい方法等がございましたら、 ご教授いただきたいと存じます。 よろしくお願いいたします。

  • 家庭内LANでのフォルダ名取得方法

    私のpc(DVDドライブ無)と妻のpc(DVDドライブあり)が接続されてます。  妻のpcにDVDを入れてますが、このDVDのフォルダ名一覧を取得したいのですが、DOSコマンドではどのようになるでしょうか? 妻 OS xp pc名 TUMA  DVDドライブは E  とします。 Eドライブは共有してあります。 手の形のアイコンになってます。 私 OS ME pc名 ORE  の場合どうなりますか?  私のパソコンから DOSプロンプトにて c:\>dir TUMA\E /b では エラーになってしまします。 DOSコマンドには特にこだわってません。 DVD内のフォルダリストが作成できればかまいません。  なにとぞよろしくお願いします。

  • FileSystemObjectでのパス名の取得

    お世話になります。 VBScriptでフォルダ内のファイルコピーのスクリプトを作っているのですが、FileSystemObjectを使用してネットワーク共有してある日本語のフォルダ名(Getfolder)を取得すると文字化けして取得できません。 Dim fso,fo set fso = CreateObject("Scripting.FileSystemObject") set fo = fso.getfolder(フォルダパス) WScript.Echo fo.path <---フォルダのパスを表示 なにか解決する方法はありますでしょうか? ちなみに、ローカルドライブの日本語フォルダは正常に取得できました。

  • 取得したファイル名から拡張子の削除について

    BATにおいて「C:\test」フォルダに格納されているファイルに対してファイル名を取得後、取得したファイル名から拡張子を削除したファイル名を変数にセットしたいと考えていますが、どのようなロジックにしたらいいかご教示頂けますようお願い致します。 実際のファイルの拡張子は削除せず、表示されたファイル名の拡張子を削除したファイル名を変数にセットしたいと考えています。 ------------------------------------------------------------------------------- set FOLDER=C:\test for /f "usebackq" %%i in (`dir %FOLDER% /B *.txt`) do ( echo %%i pause ) ------------------------------------------------------------------------------- -------------------------------------------------------------------------------- C:\testの中身 a.txt bb.txt ccc.txt dd.txt e.txt -------------------------------------------------------------------------------

専門家に質問してみよう