数学建模社区-数学中国

标题: 如何利用VBA记录哪些用户曾打开某excel文档? [打印本页]

作者: 数学者    时间: 2010-3-5 11:55
标题: 如何利用VBA记录哪些用户曾打开某excel文档?
利用VB或VBA记录(获取)哪些用户曾经打开过某excel文档,如:ip为172.36.254.22的用户在2010-03-02曾打开过“D:\book1.xls”,现在要记录以下三个信息:
8 }0 ]+ s4 V+ Z# @      172.36.254.22 ;
2 L* P# `" H  I- ^; l      2010-03-02 ;
0 a- T8 A) F5 c. |3 h      D:\book1.xls。. x6 i. O2 U0 X
请问该如何来实现呢?请各位高手帮忙解决一下
( s9 \9 P9 O4 E1 H" E谢谢~~
作者: kensington    时间: 2010-3-8 12:44
这个问题我没处理过,但是有种方法可以解决,到图书馆把VB所有的书都找出来,一本一本的翻,有几本比较厚的书很管用,书名忘了,好像是叫什么明日科技编的
作者: 数学者    时间: 2010-3-10 21:04
搞定它了,呵呵~7 h2 [- |* m8 F+ k" L1 j
代码也弄出来,在Excel的VB编辑器里执行8 v7 ]8 G+ X0 T9 I3 g; F+ R
制作环境为office2003
. R( D* Z& u0 N  Y/ h4 ePublic Sub getIpAndPcnameAndUsername()
( o* y* r( D# i: N7 i1 r8 z+ ~. B6 d+ f
    Dim myIp, pcName, userName As String
( l6 {% T" B5 }5 p    Dim objWMIService, IPConfigSet, sysInfm As Object& X! R/ D! a- ^  q* v
    5 S. b4 J/ o: Y- x
    Set objWMIService = GetObject("winmgmts:")- A' {6 u9 B$ g& \' Z
    Set IPConfigSet = objWMIService.ExecQuery("Select * from Win32_NetworkAdapterConfiguration where IPEnabled=TRUE")( s. N/ p1 A: K3 E: U# ?, K: h
    Set sysInfm = CreateObject("WScript.Network")
# b. U6 E; s+ L% L5 P/ P; Z    " V4 }# A$ g* t- O7 V$ x
    pcName = sysInfm.computername  '获取本机计算机名
5 J. R) Z6 h' M; J, e) t, N    userName = sysInfm.userName    '获取本机已登录的用户名% D, t  T; P  @. H
   
+ V7 Q! p7 Y/ z) q& h& r8 S    '获取本机ip地址
$ d  S' l- O( b( Q; ?+ z% J    For Each ipconfig In IPConfigSet
& W  I5 {, z6 q2 U$ r% V3 e2 \    . D. Q- U/ ?& |% O
        If Not IsNull(ipconfig.IPAddress) Then, f% h  j( d1 E5 W; }
            myIp = Join(ipconfig.IPAddress)( ~6 ~6 p( N. Q5 c9 w& e
        End If+ e7 m3 V" [- l& C5 E5 Q
        * ]5 ~' h; j; u; ~- Z& p
        If myIp <> "0.0.0.0" Then; N  V6 `  p4 \! `; l- `  i4 t9 C
            MsgBox "IP Address: " & myI) v* L" W( ], C
     End If. j' d( u7 K  D/ N3 t
        / m/ F5 x6 R4 o1 i
    Next  G7 W/ X5 x: n
End Sub




欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5