Access VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


1894 / 2272 ツリー ←次へ | 前へ→

【4754】ディレクトリ名の取得について VBA初心者 05/3/29(火) 11:48 質問[未読]
【4755】Re:ディレクトリ名の取得について Gin_II 05/3/29(火) 11:55 回答[未読]
【4756】Re:ディレクトリ名の取得について VBA初心者 05/3/29(火) 16:42 質問[未読]
【4757】Re:ディレクトリ名の取得について Gin_II 05/3/29(火) 16:55 回答[未読]
【4758】Re:ディレクトリ名の取得について VBA初心者 05/3/29(火) 16:59 質問[未読]
【4759】Re:ディレクトリ名の取得について Gin_II 05/3/29(火) 17:06 回答[未読]
【4761】Re:ディレクトリ名の取得について VBA初心者 05/3/29(火) 17:41 お礼[未読]

【4754】ディレクトリ名の取得について
質問  VBA初心者  - 05/3/29(火) 11:48 -

引用なし
パスワード
   こんにちは。いつもお世話になってます。

ディレクトリ名を取得する方法として、現在はGetOpenFilenameとGetCurrentdirectoryのAPIを組み合わせて使用して取得しています。(GetOpenFilenameでディレクトリ(ファイル)を指定した後にGetCurrentdirectory ・・・ 他の流用)

しかしこの方法だと、GetOpenFilenameの戻り値は、ファイルを指定しなければキャンセルも0になってしまいます。今回、ディレクトリ配下のファイルは複数のため、ひとつのファイルを指定させる必要はありません。
ということで、ディレクトリ名していだけで良いため、最適なAPIなどあれば教えてもらえないでしょうか?

よろしくお願いします。
以上

【4755】Re:ディレクトリ名の取得について
回答  Gin_II  - 05/3/29(火) 11:55 -

引用なし
パスワード
   >ディレクトリ配下のファイルは複数のため、ひとつのファイルを
>指定させる必要はありません。

Debug.Print CreateObject("Shell.Application"). _
        browseforfolder(0, _
        "フォルダを選択してください。", &H1, &H0).Items.Item.Path

とかでは、どうでしょうか?

【4756】Re:ディレクトリ名の取得について
質問  VBA初心者  - 05/3/29(火) 16:42 -

引用なし
パスワード
   ▼Gin_II さん:
いつもありがとうございます。

ここで指定したフォルダを、変数に入れる方法を教えてもらえませんか?
なかなか上手くいかなくて・・・


>>ディレクトリ配下のファイルは複数のため、ひとつのファイルを
>>指定させる必要はありません。
>
>Debug.Print CreateObject("Shell.Application"). _
>        browseforfolder(0, _
>        "フォルダを選択してください。", &H1, &H0).Items.Item.Path
>
>とかでは、どうでしょうか?

【4757】Re:ディレクトリ名の取得について
回答  Gin_II  - 05/3/29(火) 16:55 -

引用なし
パスワード
   >ここで指定したフォルダを、変数に入れる方法を教えてもらえませんか?
>なかなか上手くいかなくて・・・

Debug.Print の部分を変更するだけですよ (^^ゞ

変数名 = CreateObject("Shell.Application"). _
        browseforfolder(0, _
        "フォルダを選択してください。", &H1, &H0).Items.Item.Path

【4758】Re:ディレクトリ名の取得について
質問  VBA初心者  - 05/3/29(火) 16:59 -

引用なし
パスワード
   ▼Gin_II さん:
ありがとうございます。
自分でやってみてもできました!

ただ、フォルダ指定でキャンセルすると、withブロック変数が定義されてないといわれてしまうんですが・・・

教えて下さい!
よろしくお願いします!


>>ここで指定したフォルダを、変数に入れる方法を教えてもらえませんか?
>>なかなか上手くいかなくて・・・
>
>Debug.Print の部分を変更するだけですよ (^^ゞ
>
>変数名 = CreateObject("Shell.Application"). _
>        browseforfolder(0, _
>        "フォルダを選択してください。", &H1, &H0).Items.Item.Path

【4759】Re:ディレクトリ名の取得について
回答  Gin_II  - 05/3/29(火) 17:06 -

引用なし
パスワード
   >ただ、フォルダ指定でキャンセルすると、

  Dim f As Object
  Set f = CreateObject("Shell.Application"). _
  browseforfolder(0, "フォルダを選択", 0, 5)
  If Not f Is Nothing Then
    MsgBox f.Items.Item.Path
  End If

のように変更してみてください。

【4761】Re:ディレクトリ名の取得について
お礼  VBA初心者  - 05/3/29(火) 17:41 -

引用なし
パスワード
   ▼Gin_II さん:

うまくできました!
ありがとうございました!


>>ただ、フォルダ指定でキャンセルすると、
>
>  Dim f As Object
>  Set f = CreateObject("Shell.Application"). _
>  browseforfolder(0, "フォルダを選択", 0, 5)
>  If Not f Is Nothing Then
>    MsgBox f.Items.Item.Path
>  End If
>
>のように変更してみてください。

1894 / 2272 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
1078248
(SS)C-BOARD v3.8 is Free