重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

ファイルを開く際に、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のカレントフォルダが表示されます。

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

A 回答 (6件)

不思議ですね。


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

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

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

でも変わらないでしょうね、、、
    • good
    • 0
この回答へのお礼

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

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

お礼日時:2004/10/15 23:19

#5です。



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

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

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

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

私も驚きです。

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

この回答への補足

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

補足日時:2004/10/15 21:08
    • good
    • 0

>この条件だと、ChDirやChDriveが使えないようです。


まさか!信じられません。
イミディエイトウィンドウで
? ThisWorkbook.Path
としてみて
起動したエクセルファイルのパスが本当に表示されますか?
    • good
    • 0

私は、XPですが、指定したフォルダに移動できます。


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

この回答への補足

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

補足日時:2004/10/15 20:04
    • good
    • 0

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



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

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