- 締切済み
エクセルで自分自身のWEBアドレスを取得するには
エクセルのBOOKをサーバ上に置いています。 このBOOKのマクロで、自分自身のWEBアドレス(ツールバーのWEBで表示されるアドレス)を取得するにはどのようなコードにあるのでしょうか? Thisworkbook.path だと、各自がつけたドライブ名(E:とかF:)でしか取れず\\で始まるサーバーのアドレスが取得できません。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- kawais070
- ベストアンサー率52% (2242/4283)
回答No.1
http://support.microsoft.com/kb/192689/ja 上記のVBのサンプルが役に立つと思います。
お礼
ありがとうございます。 これはまた極端に大仕掛けなコードですね、驚きました。 こんな巨大なVBAをいれるなら、いっそパスがC:で始まらなければサーバーにあるとみなしてしまおうかと思い始めております・・・・。
補足
その後いろいろ検索し http://support.microsoft.com/kb/160529/ja を見て、以下のようにやっと取得出来るようになりました。 どういう理屈かはぜんぜんわかっていませんが・・・。 Declare Function WNetGetConnection32 Lib "MPR.DLL" Alias _ "WNetGetConnectionA" (ByVal lpszLocalName As String, ByVal _ lpszRemoteName As String, lSize As Long) As Long Dim lpszRemoteName As String Dim lSize As Long Sub GetNetPath() DriveLetter = UCase(Left(ThisWorkbook.Path, 2)) lpszRemoteName = lpszRemoteName & Space(255) lStatus& = WNetGetConnection32(DriveLetter, lpszRemoteName, 255) If lStatus& = 0 Then MsgBox "ネットワークドライブのUNCパス: " & lpszRemoteName, vbInformation, " ( ̄ー ̄)v " Else MsgBox DriveLetter & "ドライブはサーバーじゃないですね。", vbInformation, " а( ̄▽ ̄*) " End If End Sub