こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

Excel VBA:ダイアログを使ってファイル名を取得したい

ファイルを開く際に、GetOpenFilenameを使用し、以下のように記述しています。
Dim sFName As String
Dim sPath As String

sPath = ThisWorkbook.Path & "\データフォルダ"
ChDir sPath
sFName = Application.GetOpenFilename(FileFilter:="CSVファイル(*.csv),*.csv", MultiSelect:=False)

このとき、win98ですと、指定したフォルダが表示されますが、
win2000やXPですと、Excelのカレントフォルダが表示されます。

ダイアログ表示したときに、任意のフォルダを表示させるには、どのようにしたらよいですか?
ご回答よろしくお願いします。

投稿日時 - 2004-10-15 16:46:40

QNo.1043277

困ってます

質問者が選んだベストアンサー

不思議ですね。
こちらの環境はXP Homeですが、問題なく指定フォルダで表示されますよ。

ThisWorkbookはローカルドライブにあるのでしょうか?
データフォルダへのアクセス権を制限しているとかはないですか?

sPath = ThisWorkbook.Path & "\データフォルダ"
ChDir sPath
Application.Dialogs(xlDialogOpen).Show

でも変わらないでしょうね、、、

投稿日時 - 2004-10-15 22:44:51

お礼

Workbookはデスクトップにあったので、別の場所へ移動し、実行したら動きました。(winXP)デスクトップというものは特別な場所何でしょうか?
win2000ではすぐにテストできないのですが、前回のテストでは d:\データ作成 というフォルダ内で実行しましたがうまくいきませんでした。
日本語名(全角文字)のフォルダが原因でしょうか?
XPの環境では希望するものができましたのでこの質問は解決ということにさせていただきますが、XPと2000との違いがわかる方がいらっしゃいましたら回答をお願いします。

皆さんありがとうございました。

投稿日時 - 2004-10-15 23:19:34

このQ&Aは役に立ちましたか?

2人が「このQ&Aが役に立った」と投票しています

回答(6)

ANo.6

#5です。

> (winXP)デスクトップというものは特別な場所何でしょうか?

Win9xと違い、ログインユーザー毎に存在します。
Win2000も同様です。

Win9x系(95、98、Me)
C:\Windows\デスクトップ

WinNT系(2000、XP)
C:\Documents and Settings\ログイン名\デスクトップ

投稿日時 - 2004-10-16 01:48:47

ANo.4

私も驚きです。私もXPですが、ぜんぜん問題ないですよ。

投稿日時 - 2004-10-15 20:58:01

補足

確かに「ThisWorkbook.Path」はBookのあるパスになっているんですが、「GetOpenFilename」の実行時に表示されるフォルダは、「マイドキュメント」になるんです。
win98だとちゃんと「データフォルダ」が最初に表示されるんですけど。

投稿日時 - 2004-10-15 21:08:32

ANo.3

>この条件だと、ChDirやChDriveが使えないようです。
まさか!信じられません。
イミディエイトウィンドウで
? ThisWorkbook.Path
としてみて
起動したエクセルファイルのパスが本当に表示されますか?

投稿日時 - 2004-10-15 20:36:06

ANo.2

私は、XPですが、指定したフォルダに移動できます。
chdirは、ドライブをまたいで移動できないので、
ドライブが異なっているのではないかと、推測します。
ドライブを変更するには
ChDrive ("D")
のようにします。
Chdirの前に
ChDriveしてみて下さい。

投稿日時 - 2004-10-15 17:54:04

補足

目的のフォルダは、Bookのあるフォルダの1つ下の階層なので、ドライブは同じなのです。
OSは、XP/2000で、EXCELは2000です。
この条件だと、ChDirやChDriveが使えないようです。

投稿日時 - 2004-10-15 20:04:29

ANo.1

Path名をフルパスにしたらどうでしょうか?

sPath = ThisWorkbook.Path & "c:\データフォルダ"

投稿日時 - 2004-10-15 17:09:42

あなたにオススメの質問