Excel VBA質問箱 IV

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

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


9281 / 13644 ツリー ←次へ | 前へ→

【28173】パスを指定してフォルダを選択させるには? 2月うさぎ 05/8/30(火) 11:45 質問[未読]
【28181】Re:パスを指定してフォルダを選択させるに... だるま 05/8/30(火) 15:46 回答[未読]
【28182】Re:パスを指定してフォルダを選択させる... 小僧 05/8/30(火) 15:48 発言[未読]
【28252】Re:パスを指定してフォルダを選択させる... 2月うさぎ 05/9/1(木) 13:30 お礼[未読]

【28173】パスを指定してフォルダを選択させるには...
質問  2月うさぎ  - 05/8/30(火) 11:45 -

引用なし
パスワード
   GetOpenFilenameを使い、下記のようにしてExcelのファイルを選択して開くようにさせます。

'ファイルを開くダイアログボックスの表示
OpenFileName = Application.GetOpenFilename(GetOpenFilename & "Microsoft Excelブック,*.xls")

しかし、これだと操作している端末経由で自由にフォルダが選択できてしまいますよね?

このVBAを実行させるExcelシートと同じディレクトリにある、特定のフォルダの中にあるファイルのみを選択できるように設定したいのですが
その場合どうしたらよいか、教えてください。
ちなみに、このVBAを実行させるExcelシートは、ネットワーク上で共有されたフォルダ内にあります。

*ディレクトリは、別件で使うこともあり、下記の通り「StrPath」としてとってありますが、これを使うことはできますか??

StrPath = ThisWorkbook.Path
StrPath = StrPath & "\"


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

【28181】Re:パスを指定してフォルダを選択させる...
回答  だるま WEB  - 05/8/30(火) 15:46 -

引用なし
パスワード
   >GetOpenFilenameを使い
GetOpenFilenameではフォルダ固定は出来ないと思います。

自前でユーザーフォームを作ることになるのではないでしょうか。^d^

【28182】Re:パスを指定してフォルダを選択させる...
発言  小僧  - 05/8/30(火) 15:48 -

引用なし
パスワード
   ▼2月うさぎ さん:
こんにちは。

>このVBAを実行させるExcelシートと同じディレクトリにある、
>特定のフォルダの中にあるファイルのみを選択できるように設定したいのですが

当方の知識ですと、GetOpenFilename では
特定フォルダ以外のファイルを選択させないのは無理だと思います。
(やり方があったらすみません。)

返り値の OpenFileName から、
InStrRev 関数で最後の「\」の位置を求めて、
Left 関数でパス名を取得して、
ThisWorkbook.Path と比較して
違ったら選びなおし…

という方法であれば可能かと思います。

【28252】Re:パスを指定してフォルダを選択させる...
お礼  2月うさぎ  - 05/9/1(木) 13:30 -

引用なし
パスワード
   だるま様、小僧様、ありがとうございました。

使用しているExcelが2000以上の環境ということで、FileDialogが使う、という方法を先輩から教えてもらいました。

Dim StrPath As String
Dim F As FileDialog

StrPath = ThisWorkbook.Path

'ファイルを開くダイアログボックスの表示

  Set F = Application.FileDialog(msoFileDialogOpen)
  F.AllowMultiSelect = False
  F.Filters.Clear
  F.Filters.Add "Microsoft Excelブック", "*.xls"
  F.InitialFileName = StrPath

こんな感じで、思っていたような機能ができました。

よく調べずに投稿してお騒がせしてしまい、すいません。
またよろしくお願いいたします。

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