• 締切済み

共有しているEXCELシートのアクセス履歴を残すマクロ

共有しているEXCELシート(ver.2000)があり、そのシートを 開いたユーザアカウント(NTドメイン)のアクセス履歴を 残すマクロ等を探しています。 何か良い方法はありますで しょうか?

みんなの回答

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.3

こんにちは。 Environ関数 は、VBAの関数です。 例: buf = Environ("USERNAME") aaa.xls の標準モジュールに、Sub Auto_Open() という名前で以下を登録したらどうかな、と思います。こちらは、私のPCでは、ネットワークを構築していませんので、試していません。ですから、出来るかどうかは分かりません。  Dim buf As String  Dim Fno As Integer  Const FILENAME As String = "\\fileserver\rireki.txt"  buf = Environ("USERNAME") 'または、"USERDOMAIN"  Fno = FreeFile()  Open FILENAME For Append As #Fno   Print #Fno, buf & "," & Format(Now(), "yy/mm/dd hh:nn:ss")  Close #Fno

eririn3
質問者

お礼

大変丁寧な回答ありがとうございます。 教えていただいた方法で色々と試してみたいと思います。

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

こんにちは。 通常、Win32 API のGetUserName で取れるはずですが、Excelでは、同様のEnviron 関数も使えるはずです。引数は、USERDOMAIN か、または USERNAME  でよいと思います。 ファイルを開ける時か、閉じた時にでも、どこかに出力すればよいと思います。

eririn3
質問者

補足

貴重な御回答ありがとうございます。 Environ関数などを試そうとしましたが、初心者の為、調べ方に 行き詰まってしまいました。 例えば、aaa.xlsというファイルを開けたときに\\fileserver\rireki.txtというファイルに出力したい場合にどのようなコードになるのでしょうか? サンプルとして一部教えていただければ幸いです。

  • popesyu
  • ベストアンサー率36% (1782/4883)
回答No.1

その対象の共有エクセルファイルを開くためのエクセルファイルを作ってそちらで一種のログインの認証と履歴を取るようにすればどうでしょう。別にワンクッションおくのはエクセルでなくてもかまいませんが。

eririn3
質問者

補足

回答ありがとうございます。 「エクセルファイルからエクセルファイルを呼び出す」ということをするには、具体的にどのようにすれば良いのでしょうか? 知識不足ですので、具体的な方法か参考になるサイトはありませんでしょうか。

関連するQ&A