C#から遅延バインディングでEXCELのシート保護をする
かなり悪戦苦闘してようやく実装できた
/// <summary> /// ワークシートを保護する /// </summary> /// <param name="pXlBook">ワークブック</param> /// <param name="pXlSheet">ワークシート</param> public static void XlsSheetProtect(object pXlBook, object pXlSheet) { try { object [] Parameters; // シート保護時のパラメータ設定(行の挿入は許可するしない、とか) Parameters = new object[16]; Parameters[0] = Type.Missing; Parameters[1] = false; Parameters[2] = true; Parameters[3] = true; Parameters[4] = true; Parameters[5] = false; Parameters[6] = false; Parameters[7] = false; Parameters[8] = false; Parameters[9] = false; Parameters[10] = false; Parameters[11] = false; Parameters[12] = false; Parameters[13] = false; Parameters[14] = false; Parameters[15] = false; // シートを保護する pXlSheet.GetType().InvokeMember("Protect", BindingFlags.InvokeMethod, null, pXlSheet, Parameters); } catch(System.Exception ex) { throw ex; } return; }