- ベストアンサー
EXCELファイルの履歴記録方法について教えてください。
EXCELファイルの履歴記録方法について教えてください。 (1)サーバー上にあるEXCELファイルを開いた時に"いつ、誰が開いたのか"履歴を記録したいのですが、VBA等で実現可能でしょうか? 社内の人に使ってもらおうと思って作ったEXCELファイルがどれだけ利用されているのか測定したいのです。 (2)もっと欲を言えば、ファイルを開いた人が、あらかじめ作成しておいたピボットテーブルで、主に"ページのフィールド"項目を変更するのですが、"項目の中のどのデータに変更したのか"がわかるようになると最高です。これはちょっと難しそうだと思っていますが・・・ どなたか詳しい方のお知恵を拝借いただけないでしょうか?
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
エクセルには、ブックを開いたとき飛んできて、ユーザーが書いたプログラム処理をしてくれる仕組みがある。WorkbookのOpenイベントです。 そこに Private Sub Workbook_Open() Open "C:\Documents and Settings\OTO\My Documents\履歴.txt" For Append As #1 Print #1, Date, Time, Application.UserName Close #1 End Sub VBE画面のVBAPrijectのThisworkbookをクリックし、上部の2箇所の ▼をクリックし、左でWorkbook、右でOpenを選び(あるいは初めに Private Sub Workbook_Open() End Sub ガ出てくるかもしれない) そこに上記コードをコピペして入れる。 ーー 結果 開いた都度下記内容が記録される。メモ帳で確認できる。 下記は2度開いた結果 2007/11/17 8:53:20 TAKAI 2007/11/17 8:54:35 TAKAI 項目は他にコンピュターで捉えられるものがあれば、(増やすものがあれば)増やせばよい。 ーー 後半の課題は、変更項目を特定するものがつかめれば、Openでシートの特定のセルの最初の内容(Public変数に記憶)、Close(BeforeCloseイベント)の時、最後のそのシートの特定のセルの内容を書き出せばよい。 ネット環境ではテストできないのでよろしく。
お礼
imogasiさん、ご回答ありがとうございました。 (1)の履歴記録は、簡単な記述だけでできてしまったので、 感動しています。 自宅では成功しましたので、週明けに会社でトライしてみます。 (2)のピボット変更履歴も、きっと簡単な記述になるのかと 思いますが、何せ"素人"なのでどうやって記述したらいいのか わからない、というのが素直なところです。 ◎具体例を示してみます。 ~ピボットテーブル~ 部門 すべて▼ 合計 / 金額 科目▼ 合計 賃借料 1,000 保険料 2,000 備品費 3,000 ~~~~~~~~~~ 上記のように表示されているピボットテーブルで 主に"部門"の▼で"A部門""B部門"と変更します。 この時、VBEにどのような記述をしたら良いか 教えてください。
補足
試行錯誤して自分でやってみたらできました! openとcloseのprintのところにセルを特定すれば良いだけだったんですね。 imogasiさん、ありがとうございました。解決です。 vbaって奥が深いですね、感心。