質問: 共有フォルダで使うExcelファイルが、誰かが開いたまま閉じ忘れて、他の方が使えない事があり、これを解消したく以下の方法を考えています。 1ファイル無操作が一定時間続くと、それまでの内容を自動保存してファイルが閉じるマクロで対応する。 2しかし1のマクロを組んでも、マクロ無効でファイルを操作されたら意味が無いので、必ずマクロ有効にしてからでないとファイル編集できないマクロを1より先に発動する。やり方は、マクロ有効化を促すsheet1と編集sheet2があり、ファイルを初めに開くと1sheetしか表示されず2sheetは非表示になっていて、1sheet上でマクロ有効化(コンテンツの有効化)を実行すると、2sheetが表示されて1sheetか非表示になる。 3マクロ有効化で2sheetが編集操作でき、無操作状態が一定時間続いたら、それまでの内容を自動保存してファイルが閉じる。可能なら警告メッセージも表示される。 この様な条件を満たすマクロvbaコードをご存知の方が居られましたら、お知恵をお貸しください。また、当方マクロ初心者のため、コードはコピペで容易に貼れて、また、処置の仕方を省略せずに詳しくご教示いただけます様お願い致します。
回答: こんにちは。 タスクスケジューラーで、「任意のユーザーがワークステーションをロックしたとき」の実行で、vbscriptを実行させるようにし、 そのスクリプトでは、 1) excel.application をgetobjectして「特定のファイルが編集で開いているか」を確認 開いていたら、「上書き保存」を実行してブックは閉じる スクリプトは終了 ぐらいの処理を「エクセルの外から操作」させるようにしてみる。 共有しているファイルは、マクロの設置はかなり大変です。 今現在マクロがない状況で、今回の仕掛けを考えているなら、 「セキュリティの部分は」ということなら、エクセルブックのマクロは使わないように考えるようになります (そのようなPCでタスクスケジュールの方法ができるのかも、確認しないといけません)