お世話になります。
タイトルのままなんですが、
VBAでフォルダのフルパスを取得したいのですが出来るでしょうか?
ファイルのフルパスは FN = Application.GetOpenFilename で取得出来たのですが
同じ様に ダイアログから選択する様に出来るでしょうか?

A 回答 (4件)

>> VBAでフォルダのフルパスを取得したいのですが出来るでしょうか?



> フォルダを選ぶと、そのフォルダの中のファイルを
> 全部表示するようにしたいのです。

うぅ~ん どっちなんでしょうかね。
なんか趣旨が一貫していないような気がしますが・・・

ホルダだけ指定するのであれば、組込みのダイアログを使用するのは、
無理があると思います。

それであればフォルダ名を選択するフォームを作ったら如何でしょうか。

選択するホルダは、ある1個のホルダの中の複数のホルダということで
いいのですか?

下記の例は、フォームにリストボックスとコマンドボタンを配置し、
そのリストボックスに表示されたフォルダの中から選択するように
したものです。

例では、ユーザーフォームの名前を UserForm1、リストボックスの名前を
ListBox1 とします。
"c:\test\"の中のホルダをリストボックスに表示し、選択したホルダの
中の標準ファイルだけをMsgBoxに表示します。

やりたいことがいまいち解りませんので、外れているかも知れませんが、
推測したところでは、こんな感じです。

Public MyPath As String
Sub test2()
Dim MyName As String
MyPath = "c:\test\"
MyName = Dir(MyPath, vbDirectory)
UserForm1.Show (vbModeless)
UserForm1.ListBox1.Clear
Do While MyName <> ""
  If MyName <> "." And MyName <> ".." Then
    If (GetAttr(MyPath & MyName) And vbDirectory) = _
      vbDirectory Then
      With UserForm1.ListBox1
        .AddItem MyName
        .ListIndex = 0
      End With
    End If
  End If
  MyName = Dir
Loop
End Sub

Private Sub CommandButton1_Click()
Dim FName As String
Dim Rw As Integer
Dim FNdsp As String
MyPath = MyPath & Me.ListBox1.Value & "\"
FName = Dir(MyPath, vbNormal)
Do While FName <> ""
  If FName <> "." And FName <> ".." Then
    If (GetAttr(MyPath & FName) And vbNormal) = _
      vbNormal Then
      Rw = Rw + 1
'      Cells(Rw, 1).Value = FName
      FNdsp = FNdsp & MyPath & FName & vbCrLf
    End If
  End If
  FName = Dir
Loop
UserForm1.Hide
MsgBox FNdsp
End Sub

この回答への補足

すみません、質問がごちゃごちゃしてしまいました。
今作ってるのが、フォルダ名をセルに入れてVBAを実行すると
セルにファイルのリストを表示するものなので
そのフォルダ名を簡単に取得出来ないものかと調べていました。

補足日時:2003/04/23 13:41
    • good
    • 0
この回答へのお礼

回答ありがとうございました。
無事解決することができました。
また、疑問がありましたら
よろしくお願いします。

お礼日時:2003/04/23 13:56

こんな使い方が正しいかどうか分かりませんし、ご希望のものとは少し違うかもしれませんが、参考までに…。



Sub Test2()
  Dim FileName As Variant
  FileName = Application.GetSaveAsFilename _
    (InitialFileName _
       :="フォルダを選択してください", _
    FileFilter:="(*.---),*", _
    Title:="フォルダの選択")
  If FileName = False Then Exit Sub
  MsgBox Mid(FileName, 1, _
     InStrRev(FileName, "\") - 1)
End Sub

この回答への補足

なかなか いい感じに出来ました。
ありがとうございます。

補足日時:2003/04/23 13:33
    • good
    • 0
この回答へのお礼

回答ありがとうございました。
無事解決することができました。
また、疑問がありましたら
よろしくお願いします。 

お礼日時:2003/04/23 13:56

こんなのはどうでしょう、他にもっと良い方法があるのかもしれませんが。



Sub Test()
  Dim FileName As Variant
  FileName = Application.GetOpenFilename _
       ("JPEGファイル (*.jpg),*.jpg")
  If FileName = False Then Exit Sub
  MsgBox Mid(FileName, 1, _
        InStrRev(FileName, "\") - 1)
End Sub

この回答への補足

回答ありがとうございます。
このVBAと同じように、ファイルを選択してフォルダ名を取得するようにしてるのですが
これを、直にフォルダを選ぶようにしたいのです。
よろしくお願いします。

補足日時:2003/04/21 13:16
    • good
    • 0

一例ですが、下記のコードは、ファイル選択ダイアログからファイル(複数可)を


選択し、フルパスでファイル名をアクティブシートのA1から下へ書き込みます。

Sub test1()
  Dim FName As Variant
  Dim I As Integer
  FName = Application.GetOpenFilename _
    ("Excelファイル (*.xls), *.xls", , , , True)
    For I = 1 To UBound(FName)
      ActiveSheet.Cells(I, 1).Value = FName(I)
    Next I
End Sub

こんなもので、どうにか参考になりませんか。

この回答への補足

回答ありがとうございます。
同じ様なのは、作れたのですが、
フォルダを選ぶと、そのフォルダの中のファイルを
全部表示するようにしたいのです。
わかりましたら、よろしくお願いします。

補足日時:2003/04/21 13:09
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

今、見られている記事はコレ!

  • 縦書きと横書きはどちらが読みやすい?

    普段何気なく読んでいる文章ですが、縦書きか横書きか、意識したことはありますか?制作側としては読み手はどちらの方が読みやすいと思うかはとても大きな問題です。教えて!gooには、 「『横書き』と『縦書き』、...

  • 昭和の日ってどういう日?

    ゴールデンウィーク初日の4月29日は「昭和の日」です。今や平成生まれの人も多い時代ですが、「なぜ昭和の日があるの?」という疑問をもったことはありませんか?和暦を挙げるのなら、大正の日、明治の日、平成の日...

  • Excelの意外な使い方とは?

    会社のパソコンに必ず入っている、と言っても過言ではない、Office系ソフトの「Word」と「Excel」。PCを使う職場にいた方なら、一度は触ったことがあるかと思います。Wordは仕事以外に使う方法がすぐ浮かびそうです...

  • レタスの芯を簡単に取る&長持ちさせる保存テクニック

    包丁を入れると、すぐにそこから傷み始めてしまう野菜類。特にレタスなどの葉っぱ系は傷みやすく、すぐに変色するなど長持ちさせることが難しいものである。長期保存できる方法は何かないかと「教えて!goo」で検索...

  • 孤独死は怖い?怖くない?ニコニコニュースユーザーの意見をまとめてみた

    先日、「教えて!goo」では「孤独死って怖いですか?」という記事をリリースした。記事では、24年間恋人がいないという質問者による「孤独死を怖れて結婚相手を探したり、悲観的になるのはあんまり意味が無いんじゃ...

おしトピ編集部からのゆる~い質問を出題中

お題をもっとみる

このQ&Aを見た人が検索しているワード

コンピュータやスピーカーなどのオーディオ、スマートフォンをはじめとした携帯電話とそのサービスに関する質問が充実。急なトラブルの対策案もここで得られるかもしれません。

このカテゴリの人気Q&Aランキング

おすすめ情報

カテゴリ