Excel VBA質問箱 IV

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

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


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

【31613】GetOpenFilenameメソッドについて NK 05/11/27(日) 8:11 質問[未読]
【31614】Re:GetOpenFilenameメソッドについて かみちゃん 05/11/27(日) 8:19 回答[未読]
【31616】Re:GetOpenFilenameメソッドについて NK 05/11/27(日) 8:24 お礼[未読]
【31615】補足 NK 05/11/27(日) 8:22 発言[未読]
【31617】Re:GetOpenFilenameメソッドについて かみちゃん 05/11/27(日) 8:31 発言[未読]
【31677】Re:補足 Jaka 05/11/28(月) 11:05 回答[未読]
【31904】Re:補足 NK 05/12/2(金) 4:32 お礼[未読]

【31613】GetOpenFilenameメソッドについて
質問  NK  - 05/11/27(日) 8:11 -

引用なし
パスワード
   いつもお世話になっております。
また皆様のお知恵を拝借したく、参りました。

GetOpenFilenameメソッドでダイアログを開く際、
デフォルトのフォルダを指定したいと思っています。
そこで以下のようなコードを組みました。
 ChDir "パス名"
 File_Name2 = Application.GetOpenFilename("Excelファイル,*.xls")
 If File_Name2 = "False" Then Exit Sub
確実に存在するパスを指定していますが、必ずデスクトップが開かれます。
Chdirの記述に間違いがあるのでしょうか?
それともこの記述だけでは不足しているのでしょうか?
どなたかご教授願います。よろしくお願い致します。

【31614】Re:GetOpenFilenameメソッドについて
回答  かみちゃん  - 05/11/27(日) 8:19 -

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

>確実に存在するパスを指定していますが、必ずデスクトップが開かれます。
>Chdirの記述に間違いがあるのでしょうか?
>それともこの記述だけでは不足しているのでしょうか?

ChDir ステートメントのヘルプをご確認いただきたいのですが、
「現在のフォルダを現在のドライブの該当するフォルダに変更します。」とあります。
つまり、ドライブ名が変わる場合は、これだけではできず、デスクトップに移動してしまいます。
そこで、以下のようにChDirする前に、ドライブ名の変更もします。

 ChDrive パス名
 ChDir パス名
 File_Name2 = Application.GetOpenFilename("Excelファイル,*.xls")

【31615】補足
発言  NK  - 05/11/27(日) 8:22 -

引用なし
パスワード
   指定先のフォルダはサーバに置かれている共有フォルダです。
\\サーバ名\フォルダ名\フォルダ名 といった感じです。
ふと「ドライブが違うからChdirだけではダメという事か?」と思いまして。
なお、ネットワークドライブの割当は行っていません。

【31616】Re:GetOpenFilenameメソッドについて
お礼  NK  - 05/11/27(日) 8:24 -

引用なし
パスワード
   かみちゃんさん、早速のお返事ありがとうございました。

自分でも「もしかして!?」とひらめいたのですが
かみちゃんさんのお返事の方が早かったです^^;

早速試してみます。ありがとうございました。

【31617】Re:GetOpenFilenameメソッドについて
発言  かみちゃん  - 05/11/27(日) 8:31 -

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

>指定先のフォルダはサーバに置かれている共有フォルダです。
>\\サーバ名\フォルダ名\フォルダ名 といった感じです。
>ふと「ドライブが違うからChdirだけではダメという事か?」と思いまして。
>なお、ネットワークドライブの割当は行っていません。

それは大事な情報ですね。
ネットワークドライブの割り当てを行なっていないならば、ChDriveは使えません。

今、手元に環境がないので、検証できませんが、対処方法については、以下が参考になりますでしょうか?
http://www.asahi-net.or.jp/~ZN3Y-NGI/YNxv9191.html

解決できたら、どのように解決したかぜひ教えてください。

【31677】Re:補足
回答  Jaka  - 05/11/28(月) 11:05 -

引用なし
パスワード
   ChDrive ドライブ は、ローカルなドライブにしか対応してないです。

CreateObject("WScript.Shell").CurrentDirectory = "\\XXXXXXXXX"
Fn = Application.GetOpenFilename・・・・

もしくは、
SendKeys "\\XXXXXXXXX"
SendKeys "{ENTER}"
Fn = Application.GetOpenFilename・・・・

【31904】Re:補足
お礼  NK  - 05/12/2(金) 4:32 -

引用なし
パスワード
   かみちゃんさん、Jakaさん

ありがとうございました。
返信が遅れてしまい申し訳有りません。
JaKaさんに教えて頂いた
 CreateObject("WScript.Shell").CurrentDirectory=パス
を流用させて頂き、希望通りの結果が出せました。

また何かありましたらよろしくお願い致します。

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