доверять доступ к объектной модели проектов VBA

Весь MS Office, программирование на Visual Basic for Applications и MS VB

Модератор: Naeel Maqsudov

jaroslav
Сообщения: 45
Зарегистрирован: 07 дек 2009, 13:25

Сделал, выдает ошыбку 1004: "Method Delete of object Sheets failed" на строке ThisWorkbook.Modules.Delete. Пример книги прилагаю.

Мне это нужно для того, чтобы пользователи, которые будут открывать эту книгу постоянно не сталкивались с вопросом: "Эта книга содержит макросы...". Программно ставить високий или низкий уровень макросов я не хочу (может у пользователей есть какие-то нюансы работы с ексель). Результат работы программы на 1 листе ексель. Как результат ртаботы программы перенести в другую книгу со всеми форматами, ширинами столбцов? Можно с помощью команды Переместить\Скопировать лист. Но у меня в некоторых ячейках более 256 символов. Как обойти это ограничение?
Вложения
Книга1..zip
(11.21 КБ) 43 скачивания
pashulka
Сообщения: 831
Зарегистрирован: 24 ноя 2004, 03:46
Контактная информация:

Скажите, а Вы всегда просто копируете чужой код ? там же чётко сказано, что сначала модуль нужно создать, причём не как Вам хочется, а именно так, как это продемонстрировано в двух примерах и только затем этот модуль(а, по сути, лист модуля) можно удалить.

1) Зачем, всё мешать в кучу ... наличие "флажка" доверять доступ к VBProject - вообще никак не связана с сообщением об отключении макросов и уровнем безопасности. Если очень хочется, чтобы макросы запускались автоматически и пользователи об этом не догадывались, то начиная с XL2000 можно использовать цифровую подпись (более подробную информацию можно найти в справке и сети)

2) Копировать - Специальная вставка (значения, форматы, есть ширина столбцов, но не во всех версиях), разумеется, специальная вставка доступна и программно, равно как и изменение ширины столбцов и т.п.
jaroslav
Сообщения: 45
Зарегистрирован: 07 дек 2009, 13:25

Спасибо, pashulka. Извините, был невнимательным.

Я не программист по специальности. VBA изучаю самостоятельно, не всегда понимаю, что нужно сделать. Не судите строго
pashulka
Сообщения: 831
Зарегистрирован: 24 ноя 2004, 03:46
Контактная информация:

Дык, если бы я кого-то осудил, то самолично бы привёл приговор в исполнении :) т.е. расстрел на месте :)

А если серьёзно и Вы не хотите париться с :
- сообщением о наличии макросов
- уровнями безопасности (которых не, кстати, в Excel97)
- доверенным доступом к VBProject (который появился только в ExcelXP)

то установите Visual Basic 6.0 и оформляйте свою программу в виде .exe (при желании и необходимости можно использовать также и xls файл)
pashulka
Сообщения: 831
Зарегистрирован: 24 ноя 2004, 03:46
Контактная информация:

В продолжении темы :

Далее приведена ссылка, где можно найти и скачать конвертер из XL в EXE, который позволяет выполнять макросы, даже если установлен высокий уровень безопасности, не задавая при этом вопросов (это я намекаю на раздражающее многих сообщение о необходимости включить макросы)

XL TO EXE CONVERTER - XLtoEXE
Ответить