У Колина Пикарда отличный ответ, но есть один «остерегаться» этого. Есть случаи (я еще не выяснил причину), где общая длина записи "CMG = ........ GC = ...." в файле отличается от одного файла Excel до следующий. В некоторых случаях эта запись будет 137 байтов, а в других - 143 байта. Длина 137 байт является нечетной, и если это происходит при создании файла с паролем «1234», просто создайте другой файл, и он должен перейти к длине 143 байта.
Если вы попытаетесь вставить в файл неправильное количество байтов, вы потеряете ваш проект VBA, когда попытаетесь открыть файл в Excel.
EDIT
Недопустимо для файлов Excel 2007/2010. Стандартный формат файла .xlsx на самом деле представляет собой файл .zip, содержащий многочисленные подпапки с форматированием, макетом, содержимым и т. Д., Которые хранятся в виде данных XML. Для незащищенного файла Excel 2007 вы можете просто изменить расширение .xlsx на .zip, затем открыть файл zip и просмотреть все данные xml. Это очень просто.
Однако, когда вы защищаете файл Excel 2007 паролем, весь файл .zip (.xlsx) фактически шифруется с использованием шифрования RSA. Больше невозможно изменить расширение на .zip и просмотреть содержимое файла.