質問: 共有しているファイルについてアドバイスをいただければと思います。 環境情報 ・ファイルサーバーにExcelファイル(A.xlsxとする)がある ・A.xlsxが置かれている上位フォルダ(zフォルダ)には多数の利用者にアクセス権限を与えられている ・A.xlsxは週1回、休日バッチによりDBのデータを元に同名のファイルが作成され、上書き保存される ・A.xlsxは毎日、夜間バッチによりデイリー処理の元データとしてロードされる ・zフォルダにはA.xlsx以外にもb.xlsxなど多数存在する ・zフォルダは毎日6時間ごとにバックアップを取る A.xlsxの情報 ・A.xlsxには共有設定がされている ・共有の解除は誰でも可能 ・デイリー処理にエラーが出るときは、Excelのデータに問題が発生している ・A.xlsxが直接誰かに編集されたときにエラーが発生した場合、校閲のブックの共有で変更履歴を確認している 質問 ・A.xlsxのファイルを同名のファイルで上書きすることを禁止するにはどうすればいいか? 背景 ・エラーが発生した時に、変更履歴が存在しなかった(コピーしたと予測はできた) ・その時はプロパティ→詳細に最終編集者の履歴が残っていたため、利用者が判明 ・その利用者はA.xlsxをzフォルダからをローカルへコピーし、自分で編集した後、zフォルダに貼り付ける運用をしていることが発覚 ・他にも多数同様の運用をしている利用者が存在すると思われる 考えた対策とそのNG内容 ・周知する ⇒ 編集できるのが不特定多数(100人未満)なため、末端までいきわたらない ⇒ また利用者側はデータに問題があったことに対しては注意するが、運用方法には疑問を持たない ・zフォルダにA.xlsxを置かずショートカットを置いて別フォルダへ ⇒ 少し悪知恵が働く人はリンク先に移動して、そのフォルダのショートカットを保存するだろう ⇒ Excelを見るプログラムの修正が必要 求めている目標 ・A.xlsxを中心として、多数のファイルをコピペ禁止にしたい ・ただし、DBからのコピーは許可する ・通常のExcelを利用することでの利便性が失われることは避ける よろしくお願いいたします。
回答: 最初に、なぜユーザーがこういう行為に及ぶのか? を確認する必要がございます。 おそらく、御社では1つのファイルに複数の人間がアクセスし、何らかの記入を行なった後でバッチ処理で吸い上げるようにされておられると考えられますが、いかがでしょうか? 以下は私の経験に基づく推測ですが... 1. 同一ファイルへの占有時間が長いので、自分の記入ができない。 Excelファイルは「排他的共有(1人がファイルアクセスしている間、他の人は読み取り専用か、編集可能通知待ち)」しかできないので、こういうケースが頻発します。 訂正:KaedeKazane様のコメントの方法で、編集は可能です。合わせて、御指摘の注意点にもご注目ください。 1. ネットワークの通信回線が遅い箇所があるため、ファイルのやり取りが遅い場合がある。 会社内のネットワークで、10Mbpsのリピートハブが1箇所以上存在すると極度に遅くなります。 対策としましては、 * リスト入力・修正をフォームの項目限定とし、入力ミスやうっかり削除などのリスクを低減して、占有時間を短縮する。 * ネットワークの遅い部分を改善する(100Mbpsのスイッチングハブに変更等)。 がわずかながら有効かと。 これ以上の規制は、ユーザーの利便性が損なわれてしまうかもしれません...。 アドバイスとしては不十分で大変申し訳ございません。