数学建模社区-数学中国

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

作者: 数学者    时间: 2010-3-5 11:55
标题: 如何利用VBA记录哪些用户曾打开某excel文档?
利用VB或VBA记录(获取)哪些用户曾经打开过某excel文档,如:ip为172.36.254.22的用户在2010-03-02曾打开过“D:\book1.xls”,现在要记录以下三个信息:( [, f' |# x3 ^% B1 D
      172.36.254.22 ;
: s* x9 B4 i5 u0 s7 ?      2010-03-02 ;
7 i6 O8 z1 ?0 z$ ^& n1 z. e& k: V      D:\book1.xls。
% Z: U3 j6 z7 N' Y! b7 F' i- A& {( f/ A请问该如何来实现呢?请各位高手帮忙解决一下6 G8 a& n- s8 J: H
谢谢~~
作者: kensington    时间: 2010-3-8 12:44
这个问题我没处理过,但是有种方法可以解决,到图书馆把VB所有的书都找出来,一本一本的翻,有几本比较厚的书很管用,书名忘了,好像是叫什么明日科技编的
作者: 数学者    时间: 2010-3-10 21:04
搞定它了,呵呵~
& G- q5 {* p0 c7 |& k代码也弄出来,在Excel的VB编辑器里执行
% x1 n) G! x" k, q0 Q6 \9 m* n4 X制作环境为office2003
% C: P& A- P3 PPublic Sub getIpAndPcnameAndUsername()( O6 C2 D1 E6 X2 j3 u

# ~. f" p8 I  F( K    Dim myIp, pcName, userName As String
, D7 {, ~) |. J) Q" ]% Q  v- B  i    Dim objWMIService, IPConfigSet, sysInfm As Object/ e7 ]5 `2 T% I  u
    / T9 Q5 j0 d1 D% x- c
    Set objWMIService = GetObject("winmgmts:")! _2 H) b8 h; [7 O
    Set IPConfigSet = objWMIService.ExecQuery("Select * from Win32_NetworkAdapterConfiguration where IPEnabled=TRUE")  M, r9 |2 x# Z7 P" V) e
    Set sysInfm = CreateObject("WScript.Network")
5 d# Y9 t; G$ f' k& H& K. x   
* ]$ [+ a5 P0 v- M6 y, f6 W, h    pcName = sysInfm.computername  '获取本机计算机名/ K9 k) ]5 b" D, K! B
    userName = sysInfm.userName    '获取本机已登录的用户名
/ d8 Q) f! I  C4 H5 b   
/ [! W4 y! o& Z    '获取本机ip地址, {3 t, A4 \# M) l0 o5 D0 ~
    For Each ipconfig In IPConfigSet5 w1 p7 [+ c8 G, L$ w0 g
   
7 \$ Y# N: C$ h  o        If Not IsNull(ipconfig.IPAddress) Then/ E8 N6 E; T1 a9 |3 r1 O
            myIp = Join(ipconfig.IPAddress)1 l6 y) h  ]- {! G6 D
        End If
' s+ n: R; ^0 p& p* A- z6 |  d        2 R* s# m- i7 y# v7 |
        If myIp <> "0.0.0.0" Then
( q' L6 W; v% p: G) z            MsgBox "IP Address: " & myI- o$ W6 K# ]9 a& `0 F
     End If
( U+ }5 _# f/ h        5 ]1 }, X; S8 i8 q2 J
    Next! z% s; E  W% _4 O
End Sub




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