エクセルのVBAでパスの操作をするのはどうすると簡単なのでしょうか?

やりたいことは、
一番下のフォルダ名を違うものに変えるのです。

F:\一番上\その次\ここ
というディレクトリを取得して、
F:\一番上\その次\そこ
というのをつくりたいのです。

split とか join とかやってできないことはないのですが、
簡単にやる方法があったら教えてください。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2009/09/09 20:18:44
  • 終了:2009/09/14 11:28:19

ベストアンサー

id:van-dine No.2

van-dine回答回数108ベストアンサー獲得回数112009/09/09 22:30:02

ポイント60pt
Path = "c:\alpha\beta\gamma"
NewPath = Left(Path, InStrRev(Path, "\")) & "delta" 'c:\alpha\beta\delta

↓ダミー

http://q.hatena.ne.jp/

id:kaiketsu

ばっちりです。

2009/09/14 11:27:29

その他の回答(1件)

id:HALSPECIAL No.1

HALSPECIAL回答回数407ベストアンサー獲得回数862009/09/09 22:04:24

ポイント10pt

id:Mookさんと同じなのですが、

ファイルシステムオブジェクトが好きなので

GetParentFolderNameメソッド

BuildPathメソッドで

パスを編集します。

Createかけないといけないので"簡単"ではないですかね^^;

Option Explicit

Dim objFSO, strFolder
Set objFSO = CreateObject("Scripting.FileSystemObject")
strFolder = objFSO.BuildPath(objFSO.GetParentFolderName("F:\一番上\その次\ここ"), "そこ")
MsgBox strFolder
id:van-dine No.2

van-dine回答回数108ベストアンサー獲得回数112009/09/09 22:30:02ここでベストアンサー

ポイント60pt
Path = "c:\alpha\beta\gamma"
NewPath = Left(Path, InStrRev(Path, "\")) & "delta" 'c:\alpha\beta\delta

↓ダミー

http://q.hatena.ne.jp/

id:kaiketsu

ばっちりです。

2009/09/14 11:27:29
  • id:Mook
    FileSystemObject(fso) を使って
      fso.getFolder(fso.getFolder("F:\一番上\その次\ここ").Path & "\..\そこ").Path
    では如何。
  • id:HALSPECIAL
    HALSPECIAL 2009/09/09 23:09:13
    間違えて回答してしまいました。
    所望の回答でない為、オープンしないでください。
  • id:Mook
    あっ、フォルダを作りたいということですか。
    だとしたら、上のコメントも不適切でしたね。書きなおすとしたら、
      fso.CreateFolder fso.GetParentFolderName("F:\一番上\その次\ここ") & "\そこ"
    かな?

    HALSPECIAL さんの回答は不適切ではないと思いますが。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません