こんにちは、Excelでマクロを組んでいます。ネットワークにファイルサーバーのNasを利用しているのですが、ファイルを開くダイアログで初期表示されるディレクトリをNasのフォルダに指定したいと思っています。
ChDir "\\Nas\最初に開きたいフォルダ"
Application.GetOpenFilename
で指定しても、なぜかローカルのマイドキュメントが開かれてしまいます。ローカルのマイドキュメントはカレントディレクトリに設定されていますが、例えば
ChDir "C:\テストフォルダ名"としてから
Application.GetOpenFilename
とすると、きちんとテストフォルダ名が最初に表示されます。Nasへの接続の問題でしょうか?でも、Nasへログオンするにはユーザー名やパスワードを指定するはずなので、ログオンしていなかった場合はそれを聞いてくると思われるのですが・・・いかがでしょう?パスが間違っていたら、パスが間違っていますというエラーメッセージになると思いますし、、、よろしくお願いします。
No.5ベストアンサー
- 回答日時:
> もともとWindowsで設定されていたカレントディレクトリが変更されて
> しまいませんか?
良く意味がわかりませんが、それがカレントディレクトリを変更すると
いうことなのでは?
GetOpenFilename の時だけ変更したいなら...
Sub Sample()
Dim sDirPathBackup As String
Dim sFileName As String
' 現在のカレントディレクトリパスを退避
sDirPathBackup = CurDir
MsgBox CurDir, , "現在のカレントディレクトリ"
With CreateObject("WScript.Shell")
' カレントディレクトリ変更
.CurrentDirectory = "D:\AITEMP"
' ダイアログ開く
sFileName = Application.GetOpenFilename("EXCELファイル (*.xls), *.xls")
' カレントディレクトリを元に戻す
.CurrentDirectory = sDirPathBackup
End With
' 以後の処理継続~
MsgBox CurDir, , "元に戻ってます^^"
End Sub
この回答への補足
でもなんだかカレントディレクトリを変更した後、元に戻す必要はないのかな?と思ってきました。だって、ファイルを開くダイアログでファイルを開いたら、カレントディレクトリは開いたファイルのあるディレクトリになるわけですよね?そのあと、マイドキュメントにあるファイルを開いたら、カレントディレクトリはマイドキュになりますか?ごちゃごちゃですみません・・・
補足日時:2006/10/30 13:40エクセルに設定されていた保存先が変更されてしまうかと思ってしまいました。大丈夫みたいですね。現在のカレントディレクトリも一旦退避させて、ダイアログを開いた後にすぐ元にもどしてしまえばいいんですね。よくわかりました<^!^>、どうもありがとうございました。
No.4
- 回答日時:
#2 です。
誤解を招きそうなので補足しときます。確かに API もモノによって環境依存します。しかし、 SetCurrentDirectory API
は Win95~WinXPで大丈夫です。恐らくは次期 Windows Vista でも。
Windows の仕様変更を MS のアナウンス前から気にしていたらプログラムは
不可能ですから、現段階では心配無用だと思います。
WSH(Windows Scripting Host)は、Internet Explorer 4 以上がインストール
されていれば OS に標準的にインストールされてます。Win98 以降なら大丈夫
だったと思いますが、この点は確認してません。
Windows95等でブラウザのアップデートを全くしてない、WSH をインストール
していない PC だと動きません。
以前の LoveLetter ウイルス騒動で WSH を問題視したシステム管理者が WSH
禁止目的で、意図的に WSH をアンインストールしている場合も動きません。
この2点において API による方法に比べれば環境を選ぶ方法と言えますね。
が、ほとんどの PC で動くでしょう。
また、WSH は 次期 Windows Vista までは少なくとも搭載されると MS が
公式発表してます。今から心配する必要はありません。
No.3
- 回答日時:
No.1ですが、補足しておきます。
APIも環境に依存しますので、もし使用するのであればそれだけ注意してください。
(Windows系でもいきなりなくなったり仕様が変わったりすることもありますので)
WSHの方は将来無くなる予定です。
No.2
- 回答日時:
こんにちは。
KenKen_SP です。2 つの方法があります。お好みで。
ともに参照先が存在しない場合の例外処理が必要です。特に WSH の方は
エラーが発生して処理が中断されます。
▼ API を使う方法
Declare Function SetCurrentDirectory Lib "kernel32" Alias "SetCurrentDirectoryA" ( _
ByVal lpPathName As String _
) As Long
Sub Sample1()
Call SetCurrentDirectory("\\Nas\最初に開きたいフォルダ")
MsgBox CurDir
End Sub
▼ WSH を使う方法(環境依存しますが Win98 以降なら OK かな?)
Sub Sample2()
CreateObject("WScript.Shell").CurrentDirectory = "\\Nas\最初に開きたいフォルダ"
MsgBox CurDir
End Sub
この回答への補足
WSHを調べました。WSHが何であるかわかったのですが、WSHを利用した場合、もともとWindowsで設定されていたカレントディレクトリが変更されてしまいませんか?
補足日時:2006/10/30 11:52No.1
- 回答日時:
カレントドライブを変更しないとchdirは有効になりませんので、ご質問の
ケースはそのようになります。
逆に言えば、UNC名でカレントフォルダを指定することはできません。
方法としては、UNC名をネットワークドライブに割り当てた後、chdriveで
カレントドライブをそのネットワークドライブに変更し、それからchdir以降を
行えば可能だと思います。
ChDriveでドライブを変更してから行ってもできなかったんですよね・・・結局WSHで対応することにしました。APIやWSHについても今後について検討することができ、大変参考になりました。ご意見どうもありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
餃子を食べるとき、何をつけますか?
みんな大好き餃子。 ふと素朴な疑問ですが、餃子には何をつけて食べますか? 王道は醤油とお酢でしょうか。
-
大人になっても苦手な食べ物、ありますか?
大人になっても、我慢してもどうしても食べれないほど苦手なものってありますよね。 あなたにとっての今でもどうしても苦手なものはなんですか?
-
「これはヤバかったな」という遅刻エピソード
寝坊だったり、不測の事態だったり、いずれにしても遅刻の思い出はいつ思い出しても冷や汗をかいてしまいますよね。
-
自分のセンスや笑いの好みに影響を受けた作品を教えて
子どもの頃に読んだ漫画などが その後の笑いの好みや自分自身のユーモアのセンスに影響することがあると思いますが、 「この作品に影響受けてるな~!」というものがあれば教えてください。
-
好きな和訳タイトルを教えてください
洋書・洋画の素敵な和訳タイトルをたくさん知りたいです!【例】 『Wuthering Heights』→『嵐が丘』
-
【Excel VBA】ネットワーク上の共有フォルダにあるExcelを開く
Excel(エクセル)
-
VBA ネットワーク上のファイルでカレントフォルダを取得するには?
Visual Basic(VBA)
-
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
-
4
会社のネットワーク上のファイルを開けない こんにちわ 今大変困ってます 会社のネットワーク上のファイ
Visual Basic(VBA)
-
5
「Columns(A:C")」の列文字を数字にして表記したい"
Excel(エクセル)
-
6
VBA シートをコピーする際に Copyメソッドは失敗しましたのエラーが出てしまいます
Visual Basic(VBA)
-
7
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
8
日付型のフィールドに空白を入れる方法を教えてください
その他(データベース)
-
9
ExcelVBAでカレントディレクトリのファイルを開く方法は?
Excel(エクセル)
-
10
エクセルのエラーメッセージ「400」って?
Visual Basic(VBA)
-
11
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
12
EXCEL VBAで全選択範囲の解除
Excel(エクセル)
-
13
エクセルVBA テキストボックスに3桁ごとにコンマ
Visual Basic(VBA)
-
14
エクセルVBAで5行目からオートフィルタモードに設定したいたい
Excel(エクセル)
-
15
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
16
Excelで数式内の文字色を一部だけ変更したい
Excel(エクセル)
-
17
Excelで指定したフォルダに保存するマクロ
Excel(エクセル)
-
18
VBAでサーバー上のファイルを開く
Excel(エクセル)
-
19
VBA Cのセルが空白でなかったら、Aのセルに順番に数値を入力
Visual Basic(VBA)
-
20
Curdirを実行すると違う場所が表示される
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/12】 急に朝起こしてきた母親に言われた一言とは?
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・好きな「お肉」は?
- ・あなたは何にトキメキますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・チョコミントアイス
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・あなたの習慣について教えてください!!
- ・ハマっている「お菓子」を教えて!
- ・高校三年生の合唱祭で何を歌いましたか?
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・家の中でのこだわりスペースはどこですか?
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
フォルダの名前が全部同じにな...
-
フォルダ名(?)に本名が入っ...
-
CD-EXTRAデータを閲覧したいの...
-
Accessのデータベース格納場所の件
-
Cドライブに最低限必要なファイ...
-
デスクトップにファイルをその...
-
VBA ファイルを開くダイアログ...
-
リカバリードライブ(D:ドライブ...
-
ユーザーフォルダの保存先をDド...
-
「Documents and Settings」フ...
-
ハードディスクの場所が(G:)か...
-
以下のフォルダは移動しても問...
-
USBメモリーをDドライブとして...
-
デスクトップの場所
-
ショートカットは作成しすぎな...
-
ドキュメントの場所をDドライブ...
-
DドライブのProgramFilesが表示...
-
[クイックアクセスツールバー]...
-
ドキュメントをEドライブ直下に...
-
デスクトップからマイドキュメ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBA ファイルを開くダイアログ...
-
Accessのデータベース格納場所の件
-
デフォルトでファイルを別ドラ...
-
デスクトップの場所
-
USBメモリーをDドライブとして...
-
デスクトップにファイルをその...
-
フォルダ名(?)に本名が入っ...
-
フォルダの名前が全部同じにな...
-
[クイックアクセスツールバー]...
-
ファイルは基本的にどこに保存...
-
マイドライブが表示されない
-
Cドライブに最低限必要なファイ...
-
ドライブCからD移動 場所タ...
-
ユーザーフォルダの保存先をDド...
-
Dドライブに新フォルダを作る方...
-
「Documents and Settings」フ...
-
DドライブのProgramFilesが表示...
-
ドキュメントをEドライブ直下に...
-
ショートカットは作成しすぎな...
-
CD-EXTRAデータを閲覧したいの...
おすすめ情報