2020年5月1日金曜日

VBAでエクセルの変更ログを取る

とある目的に向けてエクセルVBAを用いて達成しようと考えました。
その途中で思いついたことを寄り道しながら再現していきます。
元SVがエクセルVBAを勉強する。実際に私が作れるかどうかは別問題として。

■やりたいこと

「ログを取る」


■背景
Q:テレワークを導入したいです。家で仕事してもらったとして、今使っているシステムで誰がどれだけやっているか確認することはできますか?
A:現状では確認できません

こういったことができるシステムは当然あると思いますが、今使っているものでできないのであれば何か代替え案を考えなければいけません。
さて、前置きはこれくらいにして。

まずは見える化のためにエクセルで作業したときのログを取ってみます。

トリガー:ワークシートで何かを変更したとき
WorkSheet changetarget をトリガーにすれば取得できることはわかりました。
今回のケースではデータは何が必要か。
 「日時」     (日付・時刻)
 「PC名」      (参照設定>ライブラリの追加)
 「ユーザー名」  (参照設定>ライブラリの追加)
 「ワークブック名」
 「ワークシート名」
 「セル」
 「動作」
 「内容」     (要エラー回避)
まずはこれくらいとして、今後指標が増えるたびに項目を増やしたいと思います。

■課題
・targetを使う場合、シートモジュールに記入。
 ⇒シートを増やした時、VBAが反映されるようにしたい。
・VBAをほかのブックでも使いまわし管理する場合、トリガーはブックモジュールに記入。読み込むVBAは標準モジュールに記入。
 ⇒メンテナンスを容易にしたい。
※どこに何を記入したら理想通り動くのか試行錯誤したいと思います。
・RPAも視野に入れる。



0 件のコメント:

コメントを投稿

VBAでCSVに出力する。 ~ログの残し方~

今回はCSVデータとして一か所にそれぞれのユーザーID名で保存するようにしたいと思います。 重複することは無いでしょうし、一か所のフォルダにまとめて置けば 人が複数人いてもまとめてデータの取得ができるのではないかということで。 ■やりたいこと 「CSVに出力する」 ...