プロが教える店舗&オフィスのセキュリティ対策術

ファイル保存時にネットワーク上のフォルダを表示するダイアログを表示するには
どのように記述すればよろしでしょうか。ご教授よろしくお願い致します。
以下、教えていただいたコードですが

Const PathName = "\\●●\○○\"
Call SetCurrentDirectory(PathName)
Application.Dialogs(xlDialogSaveAs).Show

このコードでファイルを開くダイアログを記述すると
設定したネットワーク上のフォルダを表示するのですが
Application.Dialogs(xlDialogOpen).Show  ---OK

ファイル保存のダイアログを記述すると
では、デスクトップがダイアログに表示されます。
Application.Dialogs(xlDialogSaveAs).Show ---NG

Application.Dialogs(xlDialogSaveAs).Show の場合(保存ダイアログ表示)は
どのように記述すれば、ネットワーク上のフォルダを表示できますでしょうか。
よろしくお願い致します。

A 回答 (2件)

> 以下、教えていただいたコードですが


知恵袋なんですかね。
http://detail.chiebukuro.yahoo.co.jp/qa/question …

もともとカレントフォルダなど操作するのではなく、
http://support.microsoft.com/kb/139723/ja
第1引数にパスを指定する方法を使う方がいいのではないかと思いますが、
同じ動作をしてしまいますね。
この時点で、Dialogs(xlDialogSaveAs) では難しいでしょう。

ネットワークドライブにするか、#1さんのおっしゃるように
API のコモンダイアログを使う事を考えた方がいいと思います。
    • good
    • 0
この回答へのお礼

使い方がわからず御礼が遅くなり、大変申し訳ございません。
皆さんの回答を頂き、色々試してみた結果
何とか解決にこぎつけました。
ありがとうございました。
またよろしく御願い致します。

お礼日時:2011/09/14 12:05

SetCurrentDirectory は API を使ってるんでしょうかね。



個人的には Application.Dialogs じゃなくて Application.GetOpenFilename や Application.GetSaveAsFilename のダイアログを使う方が好きですけどね。
これならきちんと UNC パスになってくれると思います。

Dialogs(xlDialogSaveAs) や Dialogs(xlDialogOpen) は Excel で対応しているファイル形式だけを取り扱う事しかできないけれど、GetOpenFilename や GetSaveAsFilename はダイアログの機能だけを提供してくれるので、開いたり保存したりも自分のコードでコントロールできます。
    • good
    • 0
この回答へのお礼

使い方がわからず御礼が遅くなり、大変申し訳ございません。
皆さんの回答を頂き、色々試してみた結果
何とか解決にこぎつけました。
ありがとうございました。
またよろしく御願い致します。

お礼日時:2011/09/14 12:05

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