Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 5.00/2: Рейтинг темы: голосов - 2, средняя оценка - 5.00
здесь больше нет...
3376 / 1674 / 184
Регистрация: 03.02.2010
Сообщений: 1,219

Авторские программы, библиотеки, надстройки и шаблоны

12.02.2010, 17:42. Показов 286959. Ответов 263
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
 Комментарий модератора 
Коллектив модераторов раздела оставляет за собой право использовать данный пост аналитики для размещения и обновления оглавления темы.

Оглавление
- по тематике:

Утилиты


Инструменты программиста

Графические редакторы



Защита программного кода

Офисные операции

Веб-сервис


Игры




- по автору:
A-Z





Конец оглавления

Оригинальное сообщение от аналитики:

Надстройка для VBE "IndenterVBA" - позволяет редактировать стиль оформления программного кода.
Вложения
Тип файла: rar IndenterVBA.rar (253.1 Кб, 1962 просмотров)
27
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
12.02.2010, 17:42
Ответы с готовыми решениями:

Создать дистрибутив для надстройки Word
У меня Visual Studio 2010. 1. Я создал свой первый проект: WordAddIn. 2. Добавил в решение...

Excel 2000. Самокопирование надстройки при первом запуске
написал я соотв. надстройку на Excel записал на дискету. но не учел тот факт что каждому...

Редактирование надстройки EXCEL
Ситуация: есть файл start.xla (при запуске сам не показывается, а формирует и запускает временный...

263
209 / 184 / 43
Регистрация: 02.08.2019
Сообщений: 586
Записей в блоге: 23
04.11.2019, 07:32
Студворк — интернет-сервис помощи студентам
Привет всем!
Делюсь надстройкой Image Tools VBA — надстройка для импорта иконок, MS Office на листы Excel и получения их названия, содержит 7842 иконки для MS Office 2013 или более поздних версий Excel.

Основные функции:
  • алфавитная галерея выбора иконок MSO
  • вставка иконки MSO на лист книги Excel, в формате *.png
  • использование название иконок для кода VBA

Файл для установки находится тут: Image Tools VBA – инструменты разработки макросов VBATools.ru

Ссылка на блог надстройки: Image Tools VBA – инструменты разработки макросов VBATools
Миниатюры
Авторские программы, библиотеки, надстройки и шаблоны  
5
209 / 184 / 43
Регистрация: 02.08.2019
Сообщений: 586
Записей в блоге: 23
24.11.2019, 15:57
Привет всем!
Делюсь надстройкой Word Tools VBA — надстройка для автоматизации рутинных и монотонных операций в MS Word

Основные функции:
  • пропись чисел различных форматов: финансовый, процентный, штуки и другие
  • даты прописью на основе, встроенного календаря
  • вставка времени прописью
  • авто форматирование текста на основе пользовательских настроек

Файл для установки находится тут: Word Tools VBA – автоматизации рутинных и монотонных операций в MS Word VBATools.ru

Ссылка на блог надстройки: Word Tools VBA – автоматизации рутинных и монотонных операций в MS Word VBATools.ru
Миниатюры
Авторские программы, библиотеки, надстройки и шаблоны   Авторские программы, библиотеки, надстройки и шаблоны   Авторские программы, библиотеки, надстройки и шаблоны  

Авторские программы, библиотеки, надстройки и шаблоны  
5
209 / 184 / 43
Регистрация: 02.08.2019
Сообщений: 586
Записей в блоге: 23
07.12.2019, 14:36
Привет всем сегодня делюсь Загрузчиком инвентаризационных описей

Заполняет автоматически в описях:
  • поля начала и окончания инвентаризации
  • поля сумм и количества прописью, как целых так и дробных чисел
  • все пустые поля заполняются прочерками

Обрабатывает следующие формы:
  • форма № ИНВ-3 (МПЗ)
  • форма № ИНВ-3 (Забаланс)
  • форма № ИНВ-1б
  • унифицированная форма № ИНВ-5

Возможна настройка загрузки других форматов инвентаризационных описей

скачать загрузчик можно тут Загрузчик инвентаризационных описей
Миниатюры
Авторские программы, библиотеки, надстройки и шаблоны  
1
1713 / 580 / 76
Регистрация: 10.04.2009
Сообщений: 9,337
08.12.2019, 10:20
Цитата Сообщение от art1289 Посмотреть сообщение
Файл для установки находится тут: Word Tools VBA – автоматизации рутинных и монотонных операций в MS Word VBATools.ru
там файл Addin_WORDTools.dotm и текстовый файл
Addin_WORDTools.dotm открывается Либре Офисом, при чём тут он?
в файле сказано Данный файл установит или обновит программу на Ваш компьютере, вау dotm умеет это делать?
0
209 / 184 / 43
Регистрация: 02.08.2019
Сообщений: 586
Записей в блоге: 23
08.12.2019, 17:02
Ципихович Эндрю, да там в на ленте Macro Tools есть кнопка обновить/установить ее нажмите и все случится
0
1713 / 580 / 76
Регистрация: 10.04.2009
Сообщений: 9,337
08.12.2019, 17:08
Цитата Сообщение от Ципихович Эндрю Посмотреть сообщение
Addin_WORDTools.dotm открывается Либре Офисом, при чём тут он?
почему им?
0
209 / 184 / 43
Регистрация: 02.08.2019
Сообщений: 586
Записей в блоге: 23
08.12.2019, 19:04
Ципихович Эндрю, я не знаю так у вас на машине выставлено
0
209 / 184 / 43
Регистрация: 02.08.2019
Сообщений: 586
Записей в блоге: 23
14.12.2019, 16:21
Календарь VBA Tools - полоски календарь Windows 10, реализованный макросами VBA, переключение дней недели, месяцев и годов. Открытый исходный код VBA.

Скачать файл Календаря можно тут: http://vbatools.ru/macro-tools... ylki-link/
Миниатюры
Авторские программы, библиотеки, надстройки и шаблоны  
3
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38223 / 21155 / 4314
Регистрация: 12.02.2012
Сообщений: 34,765
Записей в блоге: 14
16.01.2020, 20:34
Пример самомодифицирующейся программы с использованием VBE:

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
Function genFib() As Integer
Dim c As Integer
Dim p As Integer
Dim vbe As Object
 
 c = 0
 p = 1
    
    genFib = c + p
 
    Set vbe = ThisWorkbook.VBProject.VBComponents(2).CodeModule
    vbe.replaceLine 6, " c=" + CStr(genFib)
    vbe.replaceLine 7, " p=" + CStr(c)
 
End Function
 
Sub mk(c As Integer, p As Integer)
Dim vbe As Object
 
    Set vbe = ThisWorkbook.VBProject.VBComponents(2).CodeModule
 
    vbe.replaceLine 5, " c=" + CStr(c + p)
    vbe.replaceLine 6, " p=" + CStr(c)
 
End Sub
Sub Test()
    Debug.Print genFib
End Sub
Встройте этот код в Лист1, откройте в редакторе кода и запускайте Test несколько раз...
Вложения
Тип файла: zip VBE-01.zip (9.5 Кб, 41 просмотров)
4
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38223 / 21155 / 4314
Регистрация: 12.02.2012
Сообщений: 34,765
Записей в блоге: 14
20.01.2020, 15:58
Последнее время участились вопросы типа: "А как прочитать данные из xls-файла без его (файла) открытия?" По сути вопрос можно считать безграмотным - если мы работаем с файлами средствами ОС, то прочитать что-либо без открытия (open) невозможно. Точнее, возможно (если использовать низкоуровневое чтение с диска), но не нужно (ибо это весьма сложно для рядового пользователя Excel/VBA).

Обычно под "чтением без открытия" понимают "без отображения открытой книги". Авторам подобных вопросов обычно помогают стандартные функции CreateObject/GetObject. Их использование приводит авторов вопросов в восторг - ура! мы научились обрабатывать xls-файлы без открытия! Не буду им мешать...

Целью этой заметки является возможность извлечения данных из xlsx-файла без открытия этого файла в среде Excel. Другими словами, будет описан простой метод извлечения данных из xlsx-файлов, который будет работать, даже если на вашей машине вообще не установлен офис. Но, разумеется, это метод не является "методом без открытия" - файл открывается, но просто как поток данных, а не как приложение Excel.

На чем основан метод? На страшном секрете Microsoft... xlsx-файл - это на самом деле довольно сложная структура директорий, содержащая xml-ки и упакованная zip-ом! Да-да! Возьмите любой xlsx-файл, переименуйте его в zip - и наслаждайтесь его внутренней структурой! Кстати, старый формат (xls) совсем другой - двоичный (т.н. compound document). И то, что я собираюсь рассказать с xls-файлом работать не будет - файл придется предварительно конвертировать в xlsx. К счастью, это несложно.

А дальше - заходим в нужную директорию, открываем (для двоичного чтения) файл нужного листа и читаем данные... Все достаточно просто. А можно использовать и стандартный Microsoft DOM для работы с XML... Это дело вкуса.

Есть одна тонкость: если в какой-либо клетке расположена строка, то в соответствующем листе в клетке будет храниться целое - номер строки в таблице общих строк. Эта таблица располагается в файле SharedStrings.xml. В коде все отражено.

Ниже код:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
'Adapted from http://www.robvanderwoude.com/vbstech_files_zip.html
 
'::: Получить данные из xlsx-файла book c листа sheet из заданного списка адресов
'::: без открытия книги в Excel
 
Function getValues(book As String, sheet As String, addrs As String) As Variant()
Dim Res() As Variant
Dim Typ() As Integer
 
   HomeDir$ = ThisWorkbook.Path
 
   '::: Создаем папку для распаковки
 
   tmpDir$ = HomeDir$ + "\files"
   Set objFSO = CreateObject("Scripting.FileSystemObject")
   If objFSO.FolderExists(tmpDir$) Then
      Set tmp = objFSO.getFolder(tmpDir$)
      tmp.Delete
   End If
   objFSO.CreateFolder (tmpDir$)
 
   '::: Распаковываем содержимое xlsx-файла
   '::: Переименовываем в ".zip"
 
   newName = Replace(book, ".xlsx", ".zip")
   dest = tmpDir$
   Name book As newName
 
   '::: Распаковываем zip-архив
 
   UnZipFile newName, dest
   
   '::: Возвращаем исходное имя
   
   Name newName As book
 
   '::: Парсим список адресов
   
   alist = Split(addrs, ",")
   
   '::: Открываем файл нужного листа
   
   fi% = FreeFile
  
   Open tmpDir$ + "\xl\worksheets\" + sheet + ".xml" For Binary Access Read As #fi%
 
   '::: Загружаем в память
 
   l& = LOF(fi%)
   Buf$ = Space$(l&)
   Get #fi%, , Buf$
   Close #fi%
 
   '::: Пробегаем по адресам...
 
   n% = UBound(alist)
   
   ReDim Res(0 To n%) As Variant
   ReDim Typ(0 To n%) As Integer
 
   scount% = 0
 
   For i% = 0 To n%
   
       ctag$ = "<c r=""" + alist(i%) + """"
       
       '::: Ищем тэг начала ячейки
       
       pt& = InStr(Buf$, ctag$)
       
       If pt& > 0 Then '::: Нашли
       
          pe& = InStr(pt& + 1, Buf, "</c>")
       
          cr_tag$ = Mid$(Buf$, pt&, pe& - pt&)
       
          '::: Если тип данных строка - установим признак
          '::: и увеличим счетчик строк
          
          If InStr(cr_tag$, "t=""s""") <> 0 Then
             Typ(i%) = 1
             scount% = scount% + 1
          End If
       
          '::: Начало и конец тэга данных
       
          lctag& = Len(ctag$)
          PVB& = InStr(pt& + lctag& - 1, Buf$, "<v>")
          PVE& = InStr(pt& + lctag& - 1, Buf$, "</v>")
          
          '::: Заносим значение или номер строки
          
          Res(i%) = Mid$(Buf$, PVB& + 3, PVE& - PVB& - 3)
       
       End If
   
   Next i%
 
   '::: Если были строки...
   
   If scount% > 0 Then
   
      '::: Открываем файл строк
   
      fi% = FreeFile
   
      Open tmpDir$ + "\xl\SharedStrings.xml" For Binary Access Read As #fi%
 
      '::: Загружаем в память
 
      l& = LOF(fi%)
      Buf$ = Space$(l&)
      Get #fi%, , Buf$
      Close #fi%
   
      For i% = 0 To n%
      
          '::: Если тип очередной ячейки - строка...
      
          If Typ(i%) = 1 Then
             ns% = CInt(Res(i%)) '::: Номер строки
      
             '::: Ищем строку с заданным номером
      
             k% = 0
             p& = 1
             
             Do
             
                pb& = InStr(p&, Buf$, "<t>")
                If pb& = 0 Then Exit Do
                pe& = InStr(pb&, Buf$, "</t>")
             
                '::: Нашли - заносим текст
             
                If k% = ns% Then
                   vs$ = Mid$(Buf$, pb& + 3, pe& - pb& - 3)
                   Res(i%) = vs$
                   Exit Do
                End If
                k% = k% + 1
                p& = pe& + 1
             Loop
          End If
      Next i%
   End If
 
   '::: Удаляем рабочую директорию
 
   If objFSO.FolderExists(tmpDir$) Then
      Set tmp = objFSO.getFolder(tmpDir$)
      tmp.Delete
   End If
   getValues = Res
End Function
 
Sub UnZipFile(strArchive, strDest)
    Set objApp = CreateObject("Shell.Application")
    Set objArchive = objApp.Namespace(strArchive).Items()
    Set objDest = objApp.Namespace(strDest)
    objDest.CopyHere objArchive
End Sub
 
Sub Test()
    HomeDir$ = ThisWorkbook.Path
    Z = getValues(HomeDir$ + "\test.xlsx", "Sheet1", "B2,C3,D4,E5,F6,G7")
    For i% = 0 To UBound(Z)
        Debug.Print Z(i%)
    Next i%
End Sub
Вложения
Тип файла: zip Задачи-VBA-CJ.zip (21.5 Кб, 60 просмотров)
10
209 / 184 / 43
Регистрация: 02.08.2019
Сообщений: 586
Записей в блоге: 23
21.01.2020, 17:57
Привет Всем сегодня вышло обновление надстройки Macro Tools VBA

Появился новый инструмент "Авто документирование кода" - инструмент для автоматизации вставки комментариев описывающих основной функционал модулей, процедур и функций

Основные функции:
  • создает комментарий для активного модуля, процедуры или функции в зависимости от нахождения курсора
  • создает строку комментария обновления — добавляет к созданному комментарию, строку обновления
  • создает метки TODO — добавляет строку комментария с метко сделать

Более подробно на сайте VBATools.ru по ссылке: Авто документирование кода VBA
Миниатюры
Авторские программы, библиотеки, надстройки и шаблоны   Авторские программы, библиотеки, надстройки и шаблоны  
3
209 / 184 / 43
Регистрация: 02.08.2019
Сообщений: 586
Записей в блоге: 23
04.02.2020, 19:09
Привет Всем!)
Долго хотел сделать инструмент анализа кода на наличие НЕИСПОЛЬЗУЕМЫХ локальных и глобальных переменных, функций и процедур, пользовательских типов и перечислений!
В новом обновлении Надстройки Macro Tools VBA - появился данный инструмент)

Ссылка: http://vbatools.ru/macro-tools... -koda-vba/
Миниатюры
Авторские программы, библиотеки, надстройки и шаблоны  
3
209 / 184 / 43
Регистрация: 02.08.2019
Сообщений: 586
Записей в блоге: 23
18.02.2020, 18:09
Привет всем!
Обновление надстройки Macro Tools VBA
Разработан инструмент

Скрыть модули VBA - инструмент, скрывающий модули VBA из проекта. Предназначенный для защиты интеллектуальной собственности разработчиков макросов, от несанкционированного доступа.

Более подробно у нас на сайте:http://vbatools.ru/macro-tools... modul-vba/
Миниатюры
Авторские программы, библиотеки, надстройки и шаблоны  
1
 Аватар для bedvit
1210 / 261 / 22
Регистрация: 20.05.2016
Сообщений: 1,147
Записей в блоге: 22
18.02.2020, 18:36
Цитата Сообщение от art1289 Посмотреть сообщение
Предназначенный для защиты интеллектуальной собственности разработчиков макросов, от несанкционированного доступа.
К сожалению, как и вся защита VBA проектов - годится только для "защиты от дурака".
Все легко видим в ОО/LО.
Миниатюры
Авторские программы, библиотеки, надстройки и шаблоны  
1
209 / 184 / 43
Регистрация: 02.08.2019
Сообщений: 586
Записей в блоге: 23
18.02.2020, 19:48
bedvit, Спасибо!) за оперативное тестирование
что то не подумал про OO/LO - понял как они видят и знаю как обойти в следующем обновлении обойду этот баг)
1
1713 / 580 / 76
Регистрация: 10.04.2009
Сообщений: 9,337
19.02.2020, 08:26
и еще вопрос, скрыл модули Вашей надстройкой Normal.dot, передал его другому у него также будут скрыты модули?
или он его положил в папку C:\Documents and Settings\Admin\Application Data\Microsoft\Шаблоны с него будет запускать Ворд у него также будут скрыты модули?
0
209 / 184 / 43
Регистрация: 02.08.2019
Сообщений: 586
Записей в блоге: 23
19.02.2020, 09:12
Ципихович Эндрю, Привет!
Да только пока есть ограничение описанное bedvit, про OO/LO я это пока не устранил
И еще не пойму как Вы для Word сделали, я еще для него не обновлял)

В MS Excel не видно для всех
1
1713 / 580 / 76
Регистрация: 10.04.2009
Сообщений: 9,337
19.02.2020, 09:15
Цитата Сообщение от art1289 Посмотреть сообщение
И еще не пойму как Вы для Word сделали, я еще для него не обновлял)
да не делал я этого)) просто спросил, видимо не зря, обновите и с учетом ограничения описанного bedvit, про OO/LO и спасибо за это
0
oh my god
 Аватар для fever brain
1456 / 796 / 161
Регистрация: 05.01.2016
Сообщений: 2,307
Записей в блоге: 8
24.02.2020, 10:59
Ребята, здесь закрепленная тема, делайте ссылки на коментарии к вашим постам, трудно же искать потом
1
209 / 184 / 43
Регистрация: 02.08.2019
Сообщений: 586
Записей в блоге: 23
10.03.2020, 19:27
Обновление надстройки Macro Tools VBA
Инструмент «контроль версии файлов» Excel позволяет хранить несколько версий файла Excel. При необходимости возвращаться к более ранним версиям. Определять, кто и когда сделал то или иное изменение.

Более подробно тут: http://vbatools.ru/macro-tools... ij-fajlov/
Миниатюры
Авторские программы, библиотеки, надстройки и шаблоны  
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
10.03.2020, 19:27

Надстройки AddIns. Кто-нибудь работал с этим?
Надстройки AddIns. Кто-нибудь работал с этим? Где можно почитать рускоязычную доку?

Функция из надстройки приводит к ошибке: ошибка: "Sub or Function not defined"
добрый день. я сделал надстройку для Excel с публичной функцией: Public Function...

Вызов надстройки через VBA
Здравствуйте. Очень нужна Ваша помощь. Задача следующая: В VBA для Excel 2003 необходимо...

Всё про надстройки .XLA
Предлагаю в этой теме обсудить все аспекты надстроек .XLA . Частично эти вопросы затрагивались в...

Назначение комбинации клавиш макроса у надстройки
Есть надстройка в ней полезные макросы.....для вызова которых есть комбинации клавиш.... и так...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
200
Ответ Создать тему
Новые блоги и статьи
Лето уходит
kumehtar 17.08.2026
Мысли в слух
kumehtar 17.08.2026
Забавно, насколько сейчас стала доступна информация. Например о магии, духовном развитии, медитациях, и других подобных направлениях, ранее зачастую тайных, передаваемых от учителя к ученику. Хотя. . .
Перемещение строк из ТЧ в другой документ с учетом текущего пробега
Maks 17.08.2026
Реализация из решения ниже выполнена на примере нетипового документа "Автозапчасти", с ТЧ "Шины". За основу взят алгоритм отсюда: https:/ / www. cyberforum. ru/ blogs/ 359708/ 10838. html Задача: . . .
Саморегулирующийся социальный контракт для сервера cross-section.
Hrethgir 14.08.2026
С кодом конечно таких глубоких размышлений пока не было, впрочем я уже привык к алгоритмизации. Суть предмета записи: снова в диалоге с нейросетью (я взял пока себе ник для учётки админа - Rector). . . .
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет: 1. Использовать системное время и дату, 2. Есть возможность вводить время и дату вручную. 3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber. Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Видео: https:/ / vkvideo. ru/ video-240781534_456239017 YouTube: eY5-5PyI9NM Текстовая версия
Неделя из жизни имитационной модели склада: мои кривые руки растут, откуда надо
anaschu 10.08.2026
Неделя из жизни имитационной модели склада: как я почти написал неправильную логику и что с этим делать Работаю сейчас над учебно-рабочим проектом: строю в AnyLogic имитационную модель процессов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru