goo blog サービス終了のお知らせ 

半角チルダ

ExcelVBA、その他。
覚え書きや、補足資料などのスクラップブック。
end-u(1037781)

■WMIで共有フォルダ一覧取得

2008-03-25 22:20:00 | VBA Tips
gooアドバンスに移行して、付加された機能に『(簡易)アクセス解析』があります。
よくわからんのだが、(ぁ、ぃや見てる方が少ないのだけはわかる:笑) 検索エンジンからアクセスされた時の検索ワードが出るようになってたりしてます。
それを見ていて、(ぁーこのワードはハズしだよなー..申し訳ないっ..)なんて気の毒に感じたりも。
『VBA 半角チルダ 置換』...とか。
これはあれなんかな..『˜』がエスケープ文字として使われるので、Excelの一般機能でも検索したりする時は『*』は『˜*』だし、『˜』は『˜˜』だし。それともMacOSXのブラウザで半角チルダが全角になるという話でしょうか。なんか『%7E』で代替して回避するという話もあるようだけど。
...なんて推測したりして意外と面白いかもしれない。
それにネタ切れした時はキーワードから連想して記事書いてみるのも三題噺みたくていいかも。

と、いう事でちょっと気になった検索ワード『共有フォルダ一覧取得』。
■[共有フォルダ]の情報取得 あたりがヒットしたのかな?そう言えば[管理ツール]-[コンピュータの管理]-[共有フォルダ]の[セッション]情報と[開いているファイル]一覧は書いたけど、[共有]一覧は書いてない。なので『Hey, Scripting Guy!』にあった Win32_Share クラスを使って書いてみました。

Sub try()
  Dim Loc As Object 'SWbemLocator
  Dim Svc As Object 'SWbemObjectSet
  Dim sv As Object
  Dim c  As Long
  Dim n  As Long
  Dim i  As Long
  Dim j  As Long
  Dim v(), x()

  v = VBA.Array("Name", "Path", "Status")
  c = UBound(v)
  On Error GoTo errHndr
  Set Loc = CreateObject("WbemScripting.SWbemLocator")
  Set Svc = Loc.ConnectServer("servername", , "administrator", "password") _
         .ExecQuery("Select * From Win32_Share Where Type = 0")
  n = Svc.Count
  ReDim x(0 To n, 0 To c)
  For i = 0 To c
    x(0, i) = v(i)
  Next
  j = 0
  For Each sv In Svc
    j = j + 1
    For i = 0 To c
    x(j, i) = sv.Properties_.Item(v(i)).Value
    Next
  Next

  Sheets.Add
  Range("A1").Resize(n + 1, c + 1).Value = x
errHndr:
  If Err.Number <> 0 Then MsgBox Err.Number & ":" & Err.Description
  Set sv = Nothing
  Set Svc = Nothing
  Set Loc = Nothing
End Sub

Comment    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« ■ADOのメモリリーク | TOP | ■VBE マウス スクロール »
最新の画像もっと見る

Recent Entries | VBA Tips