ワークシートをExcel 2013で作成し、サーバー(WinServer2012)の共有フォルダに保存してあります。
VBのアプリケーションで入力されたデータをEXCELに書き込み、EXCELからは内容の確認のみ行っております。
シートを保護しているのですが、クライアントからEXCELにて内容を変更できてしまいます。
この現象は、不定期に発生し、シート保護が有効になっている状態の時は、すべてのクライアントで有効ですし、
シート保護が無効になっているときは、すべてのクライアントで編集が可能になってしまいます。
編集が可能な状態のファイルをコピーし、自社サーバー(WinServer2012)に保存し、同じように開いてみますが、保護の解除を求められます。
サーバーの設定は同じですし、保護が有効になったり無効になったり。
なぜ、このような状態が発生するのかが不明です。
以下は、EXCELファイル操作の記述です。
Dim xlApp As Excel.Application
Dim xlBook As Excel.Workbook
Dim xlSheet As Excel.Worksheet
xlApp = CreateObject("Excel.Application")
xlBook = xlApp.Workbooks.Open(xlsfile, ReadOnly:=False)
xlSheet = xlBook.Worksheets("○○○")
xlApp.Visible = False
xlSheet.Activate()
’ 書き込み時 保護解除
xlSheet.Unprotect(Password:="*****")
’ 書き込み処理
’ 書き込み終了 保護
xlSheet.Protect(Password:="*****", AllowFiltering:=True)
'保存時の問合せを非表示に設定
xlApp.DisplayAlerts = False
'Worksheet を名前をつけて保存します
xlSheet.SaveAs(xlsfile)