For spreadsheets written by an accountant for use by clients, the protect feature is essential to stop people accidentally modifying formulae. However, how many rows will be needed to input the information is not know when the sheet is first written, it would be very useful to have the option (which excel has) to choose to allow users to insert rows into a protected document. Obviously this should be optional and off as standard because unless the sheet is carefully designed inserting rows may cause problems. The workaround of having exceptionally long sheets so no section runs the risk of getting full is not ideal.
So I have taken a peak in the source code. I am unable to fully track everything down without days reading all the developer information. But it seems that the functionality to allow row insertion is available, or at least the boolean variable exists in the structure SheetProtectionModel in worksheetsettings.(hxx/cxx). However, the option is not available in protectiondlg.(hxx/cxx), how it is passed between I do not really understand. Is this simply a UI issue?
I’m searching for the same answer. I tried protecting complete rows, partial rows, single cells. It seems that protecting any cell prevents it from being moved by insertions that precede it, whether inserting by row, by column or by individual cells.