Excel VBA質問箱 IV

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

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


7109 / 13646 ツリー ←次へ | 前へ→

【41166】フォルダの指定 りの 06/8/1(火) 14:17 質問[未読]
【41167】Re:フォルダの指定 Kein 06/8/1(火) 14:22 回答[未読]
【41169】Re:フォルダの指定 りの 06/8/1(火) 14:34 質問[未読]
【41172】Re:フォルダの指定 かみちゃん 06/8/1(火) 14:44 発言[未読]
【41168】Re:フォルダの指定 Blue 06/8/1(火) 14:24 発言[未読]
【41171】Re:フォルダの指定 りの 06/8/1(火) 14:42 質問[未読]
【41175】Re:フォルダの指定 かみちゃん 06/8/1(火) 14:47 発言[未読]
【41176】Re:フォルダの指定 Blue 06/8/1(火) 14:51 発言[未読]
【41177】Re:フォルダの指定 りの 06/8/1(火) 15:10 お礼[未読]

【41166】フォルダの指定
質問  りの  - 06/8/1(火) 14:17 -

引用なし
パスワード
   お世話になっています。基本的なことなのかもしれませんが、
お助けください。

GetOpenFilenameの画面でフォルダを指定することは可能ですか?
フォルダの名前のみを取得して、その中にあるファイルを全て処理したいのです。
BrowseForFolderではなくGetOpenFilenameの画面で処理したいのですが、
可能でしょうか?

【41167】Re:フォルダの指定
回答  Kein  - 06/8/1(火) 14:22 -

引用なし
パスワード
   GetOpenFilename でダイアログを出すとき、そこに表示されるファイルは
カレントフォルダーにあるものです。従ってファイルのパスは常に

CurDir()

で取得できます。カレントフォルダーを変更したければ

ChDir パス

というコードで出来ます。

【41168】Re:フォルダの指定
発言  Blue  - 06/8/1(火) 14:24 -

引用なし
パスワード
   ▼りの さん:
>GetOpenFilenameの画面でフォルダを指定することは可能ですか?
GetOpenFilenameはファイルを取得するためのダイアログですので、おそらく不可能です。

Excel2002以上(2003かも)であれば、Application.FileDialog(msoFileDialogFolderPicker)
でGetOpenFilenameのような画面でフォルダ選択ができます。

Excel2000以下の場合は、BrowseForFolderでやるしかないようです。

【41169】Re:フォルダの指定
質問  りの  - 06/8/1(火) 14:34 -

引用なし
パスワード
   説明不足ですみません。
GetOpenFilename でダイアログで
カレントフォルダーを変更したいのです。
その時にファイルを選択するまで『開く』となりますよね。

フォルダを選択した時点で、(ファイルを選択しなくてもいい)
ダイアログが消える方法ってありますか?

【41171】Re:フォルダの指定
質問  りの  - 06/8/1(火) 14:42 -

引用なし
パスワード
   Blue さん ありがとうございます。
やはり無理ですか。。。。

例えば、BrowseForFolderで始めからフォルダの位置(c:\mydocument)を指定しておいて、場合によってそれ以上うえの階級(E:\とか)を表示させることは可能ですか?

【41172】Re:フォルダの指定
発言  かみちゃん  - 06/8/1(火) 14:44 -

引用なし
パスワード
   こんにちは。かみちゃん です。

横から失礼します。

>GetOpenFilename でダイアログで
>カレントフォルダーを変更したいのです。
>その時にファイルを選択するまで『開く』となりますよね。
>
>フォルダを選択した時点で、(ファイルを選択しなくてもいい)
>ダイアログが消える方法ってありますか?

GetOpenFilename メソッドは、
「ユーザーからファイル名を取得するために、「ファイルを開く」 ダイアログボックスを表示」するものです。
フォルダを選択するものではありません。

フォルダ選択ダイアログであれば、[#41168]のコメントになるかと思います。
また、以下のURLも参考になるかと思います。
http://www.officetanaka.net/excel/vba/tips/tips39.htm

ただし、
「ファイルを開く」 ダイアログボックスの初期フォルダを変更したいのならば、
Keinさんのおっしゃるとおり、
ChDrive
ChDir
でカレントフォルダを変更してから、GetOpenFilenameを実行することになります。

【41175】Re:フォルダの指定
発言  かみちゃん  - 06/8/1(火) 14:47 -

引用なし
パスワード
   こんにちは。かみちゃん です。

横から失礼します。

>BrowseForFolderで始めからフォルダの位置(c:\mydocument)を指定しておいて、場合によってそれ以上うえの階級(E:\とか)を表示させることは可能ですか?

[#41172]でも紹介しましたが、
http://www.officetanaka.net/excel/vba/tips/tips39.htm
が参考になるかと思います。

【41176】Re:フォルダの指定
発言  Blue  - 06/8/1(火) 14:51 -

引用なし
パスワード
   ▼りの さん:
>Blue さん ありがとうございます。
>やはり無理ですか。。。。
>
>例えば、BrowseForFolderで始めからフォルダの位置(c:\mydocument)を指定しておいて、場合によってそれ以上うえの階級(E:\とか)を表示させることは可能ですか?
よく状態がわかりません。
場合によらない場合、それ以上うえの階級は表示してはいけない?

  Dim objShell As Object
  Dim objFolder As Object
  
  Const ssfPERSONAL = 5
  
  Set objShell = CreateObject("Shell.Application")
  Set objFolder = objShell.BrowseForFolder(0, "フォルダを選んでください", ssfPERSONAL)
  If Not objFolder Is Nothing Then
    MsgBox objFolder.Self.Path
  End If

【41177】Re:フォルダの指定
お礼  りの  - 06/8/1(火) 15:10 -

引用なし
パスワード
   ご回答頂きました皆様、ありがとうございました。
説明が下手で、なかなか想いが伝わらず、
皆様に不愉快な思いをさせてしまいました。
皆様にご教授していただいた点を整理し、
何とかやってみます。
本当にありがとうございました。
またよろしくおねがいします。

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