/// <summary> /// 保存時処理 /// </summary> /// <param name="Wb">Excel情報</param> /// <param name="SaveAsUI">保存フラグ</param> /// <param name="Cancel">キャンセルフラグ</param> void Application_WorkbookBeforeSave(Microsoft.Office.Interop.Excel.Workbook Wb, bool SaveAsUI, ref bool Cancel) { // Excel画面が表示されていない場合は設定画面を表示しない if (this.Application.Visible == false) { return; } // プロパティ情報取得 ExcelAddInSAB.SettingForm frmSet = new ExcelAddInSAB.SettingForm(); // 共通設定エラー時処理 if (frmSet.commonFileReadCompleted == false) { return; } string strFilePropertySecrecyLevel = string.Empty; // ファイルプロパティ情報 機密区分 string strFilePropertyClassNo = string.Empty; // ファイルプロパティ情報 事業所コード string strFilePropertyOfficeCode = string.Empty; // ファイルプロパティ情報 事業所コード // プロパティのタグを取得 frmSet.GetDocumentProperty(ref strFilePropertySecrecyLevel, ref strFilePropertyClassNo, ref strFilePropertyOfficeCode); // プロパティ情報取得 // プロパティにSAB情報は未設定の場合は設定画面を表示 if (frmSet.IsSecrecyInfoRegistered() == false) { // 必須登録モードON frmSet.MustRegistMode = true; frmSet.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; frmSet.ShowDialog(); } else { // ファイルの事業所コードと設定値の事業所コードを比較 if (strFilePropertyOfficeCode == frmSet.clsCommonSettting.strOfficeCode) { // プロパティに情報を書込み frmSet.SetDocumentProperty(strFilePropertySecrecyLevel); } else { // 修正を押下された場合は、設定画面を表示する frmSet.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; frmSet.ShowDialog(); } } }
/// <summary> /// 有効な保存個所チェック /// </summary> private bool IsEnableStorage(string Path) { // プロパティ情報取得 ExcelAddInSAB.SettingForm frmSet = new ExcelAddInSAB.SettingForm(); try { string strFilePropertySecrecyLevel = string.Empty; // ファイルプロパティ情報 機密区分 string strFilePropertyClassNo = string.Empty; // ファイルプロパティ情報 事業所コード string strFilePropertyOfficeCode = string.Empty; // ファイルプロパティ情報 事業所コード // プロパティのタグを取得 frmSet.GetDocumentProperty(ref strFilePropertySecrecyLevel, ref strFilePropertyClassNo, ref strFilePropertyOfficeCode); // プロパティ情報取得 // プロパティにSAB情報は未設定の場合は設定画面を表示 if (frmSet.IsSecrecyInfoRegistered() == false) { // 必須登録モードON frmSet.MustRegistMode = true; frmSet.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; frmSet.ShowDialog(); frmSet.GetDocumentProperty(ref strFilePropertySecrecyLevel, ref strFilePropertyClassNo, ref strFilePropertyOfficeCode); // プロパティ情報取得 } // S秘・A秘なら保存場所の確認を行う if ((strFilePropertySecrecyLevel == AddInsLibrary.InfomationForm.SECRECY_PROPERTY_S) || (strFilePropertySecrecyLevel == AddInsLibrary.InfomationForm.SECRECY_PROPERTY_A)) { List <string> lstTarGetSecureFolder = frmSet.clsCommonSettting.lstSecureFolder; string result = lstTarGetSecureFolder.FirstOrDefault(x => Path.Contains(x)); if (result == null) { // 正しい場所に保存されてない場合 return(false); } } } catch { // 共通設定が読み込めない場合はそもそもセキュアチェックができない為チェックを行わないでスルーする } return(true); }