Форум программистов, компьютерный форум, киберфорум
zavr0id
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  

Макрос для вставки макроса в Excel

Запись от zavr0id размещена 10.07.2012 в 18:57
Показов 6525 Комментарии 1

Цитата Сообщение от Diskretor Посмотреть сообщение
1. Экспорт модуля проекта в файл
2. Импорт модуля проекта из файла
3. Импорт модуля через организатор(данный код только для Word приложения)
4. Вставка новых строк в модуль проекта

5. Удаление строк из модуля
6. Чтение строк из модуля
7. Определение количества строк в модуле
8. Переименование модулей проекта
9. Удаление модулей проекта
10. Определение количества модулей в проекте
11. Создание нового модуля проекта

Обработка модулей VBA программно


Под "ИмяПроекта" в программной конструкции подразумевается соответствующий объект. Для связи с книгой Excel предназначен объект - Workbooks("Имя книги"), а для связи с документом Word объект - Documents(“Имя документа”). Объект для связи с документом, который содержит общие макросы приложения Word, имеет имя: NormalTemplate, в Excel приложении данный объект записывается следующим образом: Workbooks("PERSONAL").

Экспорт модуля проекта в файл
Visual Basic
1
ИмяПроекта.VBProject.VBComponents.Item("Имя модуля").Export "Путь и ИмяФайла"
Импорт модуля проекта из файла
Visual Basic
1
ИмяПроекта.VBProject.VBComponents.Import  "Путь и ИмяФайла"
Импорт модуля через организатор(данный код только для Word приложения)
Visual Basic
1
2
3
Application.OrganizerCopy Source:= "Путь и имя проекта откуда берется модуль", Destination:= _
"Путь и имя проекта куда импортируется модуль", Name:="Имя модуля", Object _
:=wdOrganizerObjectProjectItems
Вставка новых строк в модуль проекта
Visual Basic
1
ИмяПроекта.VBProject.VBComponents.Item("Имя модуля").CodeModule.InsertLines  №, S
Где
№ - Номер строки в модуле с которой будут вставляться новые строки
S – Вставляемая строка символов

Примечание:
В переменной S могут содержаться коды символов конца строк , которые можно получить следующей функцией со следующим аргументом: CHR(13). Таким образом, переменная S может содержать в себе сразу несколько строк:
Visual Basic
1
S = "Первая строка"+ chr(13)+ "Вторая строка" + chr(13)+ "Третья строка"  'и т.д.
Удаление строк из модуля
Visual Basic
1
ИмяПроекта.VBProject.VBComponents.Item("Имя модуля").CodeModule.DeleteLines(№,Количество)
Где
№ - Номер строки в модуле с которой будут удаляться строки
Количество – количество удаляемых строк

Чтение строк из модуля
Visual Basic
1
ИмяПроекта.VBProject.VBComponents.Item("Имя модуля").CodeModule.Lines(№,Количество)
Где
№ - Номер строки в модуле с которой будут начинаться чтение строк
Количество – количество читаемых строк

Определение количества строк в модуле
Visual Basic
1
ИмяПроекта.VBProject.VBComponents.Item("Имя модуля").CodeModule.CountOfLines
Переименование модулей проекта
Visual Basic
1
ИмяПроекта.VBProject.VBComponents.Item("ИмяМодуля").Name ="Новое имя модуля"
Удаление модулей проекта
Visual Basic
1
2
ИмяПроекта.VBProject.VBComponents.Remove  _
ИмяПроекта.VBProject.VBComponents.Item("ИмяМодуля")
Определение количества модулей в проекте
Visual Basic
1
ИмяПроекта.VBProject.VBComponents.Count
Создание нового модуля проекта
Visual Basic
1
2
3
4
5
6
'Создаем новый модуль макросов и подпрограмм
ИмяПроекта.VBProject.VBComponents.Add vbext_ct_StdModule
'Определяем индекс созданного модуля
k = ИмяПроекта.VBProject.VBComponents.Count
'даем свое имя модулю
ИмяПроекта.VBProject.VBComponents.Item(k).Name = "Новое имя модуля"
12345
Размещено в Без категории
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Всего комментариев 1
Комментарии
  1. Старый комментарий
    Аватар для Pure
    хорошее инфо!
    Запись от Pure размещена 11.07.2012 в 10:12 Pure вне форума
 
Новые блоги и статьи
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Видео: https:/ / vkvideo. ru/ video-240781534_456239017 YouTube: eY5-5PyI9NM Текстовая версия
Неделя из жизни имитационной модели склада: мои кривые руки растут, откуда надо
anaschu 10.08.2026
Неделя из жизни имитационной модели склада: как я почти написал неправильную логику и что с этим делать Работаю сейчас над учебно-рабочим проектом: строю в AnyLogic имитационную модель процессов. . .
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства. Родственных связей существует 8 ступеней, такие как: p - отец P - мать q - муж Q - жена b - брат B - сестра s - сын S - дочь
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире. Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
Как ИИ начал спорить и врать (возможно почуяв опасность для себя от индустрии - уход от электроники).
Hrethgir 04.08.2026
Недельный диалог, на фоне событий с НПЗ. Да, из спирта можно получать бензин, и это не сложно. Но потом в схеме я решил избавиться от насоса, при этом полностью сделав контроль подачи спирта в. . .
Термопринтер QR701
Argus19 03.08.2026
Термопринтер QR701 Купил два термопринтера QR701. На сэлф-тесте написано: Language: PC936 (GB18030). Что означает, что принтеры могут печатать только латиницу и китайские иероглифы. Так же. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru