Excel VBA質問箱 IV

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

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


8099 / 13645 ツリー ←次へ | 前へ→

【35129】ディレクトリの指定 りん 06/2/22(水) 9:25 質問[未読]
【35132】Re:ディレクトリの指定 inoue 06/2/22(水) 9:58 発言[未読]
【35136】Re:ディレクトリの指定 りん 06/2/22(水) 10:28 質問[未読]
【35144】Re:ディレクトリの指定 inoue 06/2/22(水) 11:45 発言[未読]
【35153】Re:ディレクトリの指定 りん 06/2/22(水) 14:30 お礼[未読]
【35152】Re:ディレクトリの指定 Kein 06/2/22(水) 14:19 発言[未読]
【35154】Re:ディレクトリの指定 りん 06/2/22(水) 14:32 お礼[未読]

【35129】ディレクトリの指定
質問  りん  - 06/2/22(水) 9:25 -

引用なし
パスワード
   おはようございます。
VBAあまり詳しくないので、教えて下さい。

ファイル操作(openやsave)を行うとき、ディレクトリを指定しますが、各個人でネットワークのディレクトリの割り当て(というのでしょうか?)が違い、複数の人が使えるマクロにするにはどうすればよいのでしょうか?
私の言ってるディレクトリの割り当てとは、ネットワーク上で(E:)とか(J:)とか割り当ててあるのですが、個人のパソコンでその設定が違うのです。
openするとき、”J:\あるフォルダ・・・”などと記述すると、他の人では使えないのです。
担当者を選べば(E:)とか(J:)とかを自動で設定できるようにしたいのですが…。
また、そのシートには、複数のボタン(実行マクロ)があり、その度に担当者をえらぶのではなく、一度選んだ担当者(&ディレクトリ設定)は、ファイルを閉じるまで有効としたいのですが…。

よろしくお願いします。

【35132】Re:ディレクトリの指定
発言  inoue E-MAILWEB  - 06/2/22(水) 9:58 -

引用なし
パスワード
   おはようございます。

>担当者を選べば(E:)とか(J:)とかを自動で設定....
VBA以前の問題ですが、
「AさんはEドライブ」「BさんはJドライブ」とかは
何を持って判断するつもりなのですか?

それにネットワークドライブではなく、UNCパスではいけないのでしょうか。

【35136】Re:ディレクトリの指定
質問  りん  - 06/2/22(水) 10:28 -

引用なし
パスワード
   ▼inoue さん:

返信ありがとうございます。

>>担当者を選べば(E:)とか(J:)とかを自動で設定....
>VBA以前の問題ですが、
>「AさんはEドライブ」「BさんはJドライブ」とかは
>何を持って判断するつもりなのですか?

たぶん、パソコンの最初の設定時にしてるのだと思いますが、
例えば、フロッピーディスク(A:)、内臓HDD(C:)と同じように、
ネットワーク上のあるコンピュータのあるディレクトリは(E:)、他の人では(J:)となってるのです。
それは、エクスプローラで見たときに(E:)や、(J:)となってるので、わかるのですが…。

>
>それにネットワークドライブではなく、UNCパスではいけないのでしょうか。

すみません。UNCパスって何ですか?

【35144】Re:ディレクトリの指定
発言  inoue E-MAILWEB  - 06/2/22(水) 11:45 -

引用なし
パスワード
   >それは、エクスプローラで見たときに(E:)や、(J:)となってるので、
>わかるのですが…。
では、ある人のパソコンにA,C以外のドライブがいくつもあったら
どれが「それ」だと分かるのですか?

>すみません。UNCパスって何ですか?
「UNCパス」とはネットワークドライブにマウントされている
「実際のネットワークパス」だと解釈すれば良いと思います。
「\\コンピュータ名\共有名」という構成になっています。
これをネットワークドライブにマウントしているはずなので、
この「UNCパス」で指せば良いと思うのですが...

【35152】Re:ディレクトリの指定
発言  Kein  - 06/2/22(水) 14:19 -

引用なし
パスワード
   うまくいくかどうか分かりませんが、テストしてみて下さい。
ちなみにこちらでは失敗しました。

Sub Net_Drive()
  Dim WshNetwork As Object, oDrives As Object
  Dim i As Long
 
  Set WshNetwork = CreateObject("WScript.Network")
  Set oDrives = WshNetwork.EnumNetworkDrives
  For i = 0 To oDrives.Count - 1 Step 2
   MsgBox "Drive " & oDrives.Item(i) & _
   " = " & oDrives.Item(i + 1)
  Next i
  Set oDrives = Nothing: Set WshNetwork = Nothing
End Sub

Sub Net_Drive2()
  Dim FSO As Object, Dr As Object
 
  Set FSO = CreateObject("Scripting.FileSystemObject")
  For Each Dr In FSO.Drives
   If Dr.DriveType = 3 Then
     MsgBox "ネットワークドライブは " & Dr.DriveLetter & _
     vbLf & Dr.ShareName
     Exit For
   End If
  Next
  Set FSO = Nothing
End Sub

【35153】Re:ディレクトリの指定
お礼  りん  - 06/2/22(水) 14:30 -

引用なし
パスワード
   ▼inoue さん:

>では、ある人のパソコンにA,C以外のドライブがいくつもあったら
>どれが「それ」だと分かるのですか?

ごめんなさい。質問の意味がよくわからないのですが…。
エクスプローラーで見ると、(E:)や(j:)の表示があるので…。

>「\\コンピュータ名\共有名」という構成になっています。
>これをネットワークドライブにマウントしているはずなので、
>この「UNCパス」で指せば良いと思うのですが...

ありがとうございます。そういう記述方法があったのですね。
これで解決しそうです。

【35154】Re:ディレクトリの指定
お礼  りん  - 06/2/22(水) 14:32 -

引用なし
パスワード
   ▼Kein さん:

ありがとうございます。

>うまくいくかどうか分かりませんが、テストしてみて下さい。
>ちなみにこちらでは失敗しました。

inoueさんの方法で解決しそうなので試してませんが、ありがとうございました。
(後でゆっくり考えてみます)
また、よろしくお願いします。

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