数学建模社区-数学中国

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

作者: 数学者    时间: 2010-3-5 11:55
标题: 如何利用VBA记录哪些用户曾打开某excel文档?
利用VB或VBA记录(获取)哪些用户曾经打开过某excel文档,如:ip为172.36.254.22的用户在2010-03-02曾打开过“D:\book1.xls”,现在要记录以下三个信息:# z8 Z2 d" S! l
      172.36.254.22 ; 4 m' e' I9 Q2 D0 h, a
      2010-03-02 ;# M& `1 ~& _7 @
      D:\book1.xls。" t' I( [$ B9 p% o+ f7 T+ v$ _( q+ B# T
请问该如何来实现呢?请各位高手帮忙解决一下' E" a3 \. n0 c
谢谢~~
作者: kensington    时间: 2010-3-8 12:44
这个问题我没处理过,但是有种方法可以解决,到图书馆把VB所有的书都找出来,一本一本的翻,有几本比较厚的书很管用,书名忘了,好像是叫什么明日科技编的
作者: 数学者    时间: 2010-3-10 21:04
搞定它了,呵呵~2 s( N5 y0 S# ^: m, U6 b
代码也弄出来,在Excel的VB编辑器里执行9 h2 Q* P1 V* u& Z. t
制作环境为office2003
- X6 z$ a( q. v3 YPublic Sub getIpAndPcnameAndUsername()
3 n4 T+ }: o  M' S. z/ P6 p6 |; u9 A
+ B8 w! \' {3 V    Dim myIp, pcName, userName As String, e; x/ E/ x1 `5 Z
    Dim objWMIService, IPConfigSet, sysInfm As Object
- t! K; N1 b6 z$ @9 H. s/ N" c& G    3 A3 k- Q/ ]2 k
    Set objWMIService = GetObject("winmgmts:")  v5 d9 v$ B, B  ]
    Set IPConfigSet = objWMIService.ExecQuery("Select * from Win32_NetworkAdapterConfiguration where IPEnabled=TRUE")0 M, g* M6 _3 H* Q" M
    Set sysInfm = CreateObject("WScript.Network")! t3 {4 h5 t# c
    . \' U* E' j2 ~0 Z4 V
    pcName = sysInfm.computername  '获取本机计算机名* [  m6 K# L7 O* ?9 ?: `4 M
    userName = sysInfm.userName    '获取本机已登录的用户名( j, n& C  S2 Z: ~
    7 z0 C& N2 Y4 m3 H* }# m
    '获取本机ip地址( O; B) }: @3 o% D
    For Each ipconfig In IPConfigSet/ C- a( K# f2 Y. W
    5 T8 x6 l' J, f, }2 K0 D! d* o2 Y6 c
        If Not IsNull(ipconfig.IPAddress) Then' |1 b/ u3 y4 Q8 C
            myIp = Join(ipconfig.IPAddress)
3 T9 o3 R# Q0 ~7 I* w" x  `        End If  i3 v" C+ [7 v3 i* K2 Y
        ) |0 q% `- V. x7 n! S$ K2 U( x* A
        If myIp <> "0.0.0.0" Then. `6 Z; W9 ~$ a( ]8 D* m
            MsgBox "IP Address: " & myI
. D8 R# F$ w3 i; ~/ B' c3 b. a4 m     End If
) o. N) {# `% s3 N: h9 S        5 q+ L- s. H6 \1 h
    Next3 \9 T6 d5 @$ \: P' {( k8 ]9 f3 x
End Sub




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