質問: マクロでネットワーク上のコンピューターへの接続 エクセルのマクロを使用して、ネットワーク上のコンピューターのファイルを開く事を考えています。 (例:ipアドレス『192.168.0.1』のpcの『共有』のホルダー内の『book1.xlsx』を開く場合) ただ、そのコンピューターへ接続する時に、ユーザー名とパスワードが必要になります。 先に設定しておけば問題ないのですが、マクロを使用時のみの接続を考えています。 使用環境は、win7で、excel2010です。 どうやれば出来るか教えてください。
回答: 色々と面倒です。 社内で使用するのでしょうか? vbaコード中に平文でユーザー名とパスワードを記述するのはまずいのでは?と。 仮にvbaprojectを保護し内容を隠したとしても こじ開けるツールが巷に出回っています。 上司の許可は得られるのでしょうか? 問題ないと仮定して... '接続 sub net_add() dim wshnetwork as object const 共有名 = "\\パソコン名\共有名" const パスワード = "himitsu" const ユーザー名 = "ore" set wshnetwork = createobject("wscript.network") on error resume next wshnetwork.mapnetworkdrive "n:", 共有名, , ユーザー名, パスワード on error goto 0 set wshnetwork = nothing end sub '切断 sub net_del() dim wshnetwork as object set wshnetwork = createobject("wscript.network") on error resume next wshnetwork.removenetworkdrive "n:" on error goto 0 set wshnetwork = nothing end sub 但し、 >マクロを使用時のみの接続 は難しいです。分かりませんでした。 上記net_del でネットワークドライブを削除しても エクスプローラなどで共有フォルダを開いていたり等々すると 共有フォルダへの接続は維持されたままになります。 別件で共有フォルダへ接続していた場合に強制的に切断されては困るので 仕方のない事かと思います。 コマンドプロンプトの、net use でも同様な結果でしたね。 以上、ご参考まで。 私からは以上です。