Excel VBA質問箱 IV

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

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


5073 / 13646 ツリー ←次へ | 前へ→

【52747】ファイルを開くときのフォルダ設定について jo 07/11/30(金) 12:10 質問[未読]
【52748】Re:ファイルを開くときのフォルダ設定につ... かみちゃん 07/11/30(金) 12:30 発言[未読]
【52749】Re:ファイルを開くときのフォルダ設定につ... jo 07/11/30(金) 14:58 お礼[未読]
【52750】Re:ファイルを開くときのフォルダ設定につ... かみちゃん 07/11/30(金) 15:07 発言[未読]

【52747】ファイルを開くときのフォルダ設定につい...
質問  jo  - 07/11/30(金) 12:10 -

引用なし
パスワード
   下記のようなプログラムで他のEXCELファイルを開くようにしています。
ファイル選択のダイアログで、一番初めに表示されるフォルダがマイドキュメントになっているのですが、選択したいファイルはサーバー上のフォルダにあるため、毎回フォルダへ移動しないといけません。そこで、ファイル選択のダイアログで、一番初めに表示されるフォルダを変更したいのですが、方法が分かりませんので教えて下さい。

Dim vFileName As String
vFileName = Application.GetOpenFilename(fileFilter:="Microsoft Excel ファイル (*.xls),*.xls", filterIndex:=1, MultiSelect:=False)
If vFileName = "False" Then
  MsgBox "キャンセルが選択されました" & Chr(13) & "処理を中止します"
  Exit Sub
End If
MsgBox vFileName & " が選択されました。"
Workbooks.Open Filename:=vFileName, ReadOnly:=True

よろしくお願いします。

【52748】Re:ファイルを開くときのフォルダ設定に...
発言  かみちゃん  - 07/11/30(金) 12:30 -

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

> ファイル選択のダイアログで、一番初めに表示されるフォルダを変更したい

以下のような感じでできると思います。
サーバーのファイルであれば、
 CreateObject("WScript.Shell").CurrentDirectory = myObj.Self.Path
というような感じで、カレントフォルダを変更する必要があるようです。

Sub Sample()
 Dim myObj As Object
 Dim vFileName As String
  
 Set myObj = CreateObject("Shell.Application") _
   .BrowseForFolder(0, "フォルダを選択してください", &H1)
 If myObj Is Nothing Then Exit Sub
  
 CreateObject("WScript.Shell").CurrentDirectory = myObj.Self.Path
  
 vFileName = Application.GetOpenFilename〜

【52749】Re:ファイルを開くときのフォルダ設定に...
お礼  jo  - 07/11/30(金) 14:58 -

引用なし
パスワード
   ▼かみちゃん さん:

返信ありがとうございます。
早速、サンプルプログラムで動作を試してみました。
この機能でも問題なくできそうなのですが、毎回フォルダを指定しないといけなくなります。ファイルがあるサーバー,フォルダは決まっているため、『ファイルを開く』ダイアログが表示されたときに表示されるフォルダをサーバー上のフォルダにしたいです。

何か良い案があれば教えて下さい。

【52750】Re:ファイルを開くときのフォルダ設定に...
発言  かみちゃん  - 07/11/30(金) 15:07 -

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

> ファイルがあるサーバー,フォルダは決まっているため

コードの意味を理解していただきたいのですが、

Set myObj = CreateObject("Shell.Application") _
   .BrowseForFolder(0, "フォルダを選択してください", &H1)
If myObj Is Nothing Then Exit Sub

は不要で、

 CreateObject("WScript.Shell").CurrentDirectory = myObj.Self.Path

 myObj.Self.Path
の部分を決まっているフォルダ名にしてください。
ただし、フォルダの存在チェックになどもしないと、エラーになるかもしれません。

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