Форум программистов, компьютерный форум, киберфорум
Наши страницы
VBA
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.65/658: Рейтинг темы: голосов - 658, средняя оценка - 4.65
аналитика
здесь больше нет...
3349 / 1664 / 184
Регистрация: 03.02.2010
Сообщений: 1,219
#1

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

12.02.2010, 17:42. Просмотров 119201. Ответов 153
Метки нет (Все метки)

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

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

Утилиты


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

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



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

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

Веб-сервис


Игры




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





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

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

Надстройка для VBE "IndenterVBA" - позволяет редактировать стиль оформления программного кода.
27
Вложения
Тип файла: rar IndenterVBA.rar (253.1 Кб, 1529 просмотров)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.02.2010, 17:42
Ответы с готовыми решениями:

Подключение библиотеки в коде программы
Добрый день, уважаемые форумчане. При переносе макроса из 2003 в 2007 Excel...

Надстройки
Доброго времени суток, форумчане! Подскажите, каким образом можно извлечь...

Временно отключить надстройки
Здравствуйте! Необходимо в начале действия макрос отключить (или...

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

Ошибка в коде надстройки
Надстройка выдает ошибку 13. В коде ругается на строку: prob =...

153
AndreA SN
1001 / 105 / 2
Регистрация: 26.08.2011
Сообщений: 806
Записей в блоге: 2
24.07.2015, 12:30 #121
аналитика, а
Цитата Сообщение от аналитика Посмотреть сообщение
Надстройка для VBE "IndenterVBA"
вообще развивается для MS 2013 и компании? с уважением к приятной программульке...
1
westerov
2 / 2 / 0
Регистрация: 18.11.2012
Сообщений: 27
18.09.2015, 02:35 #122
Цитата Сообщение от Dragokas Посмотреть сообщение
Этот маленький редактор идет вместе с офисом...
...Как то он мне полюбился...
Многим
Сижу на работе - ХРюша с 2007м.
Закинул файлы по назначению - мухой запустилась английская.
Спасибо одним словом Теперь дома из офисахр по именам вытащу русские.
ЗЫ:
Делал циферблат в ворде, 2 раза кликнул по имаже -
орёт " не установлена программа Microsoft Photo Editor 3.0"
1
Вождь
216 / 48 / 2
Регистрация: 18.02.2010
Сообщений: 81
14.10.2015, 04:46 #123
Привет всем.

"Стартер" - универсальный инсталлятор надстроек Word:
starter.zip

"ПоЗа" - организатор каталога операций поиска и замены Word:
poza_empty.zip

Тут другие поделки:
http://mtdmacro.ru/create.html
3
Вождь
216 / 48 / 2
Регистрация: 18.02.2010
Сообщений: 81
25.01.2016, 09:10 #124
Ну и вдогонку - универсальный инсталлятор надстроек Excel:
2
Вложения
Тип файла: zip starter.xls.zip (43.6 Кб, 21 просмотров)
KoGG
5274 / 1347 / 320
Регистрация: 23.12.2010
Сообщений: 2,019
Записей в блоге: 1
05.02.2016, 13:41 #125
Бывает необходимость параллельной поменять формулу в определенной ячейке (или диапазоне) на одноименных листах во множестве одновременно открытых книг одинаковой структуры. Либо по образцу с активной книги, либо дописав формулу справа, либо по шаблону изменения. Данные макросы решают эти задачи, заодно копируют формат.
Кликните здесь для просмотра всего текста
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
Sub Копировать_формулу_по_книгам()
    If TypeName(Selection) <> "Range" Then MsgBox "Не выделен диапазон. Работа прекращена.": Exit Sub
    Dim i&, j&, k%, DiaAdr$, NazvLista$, Msg$, r As Range, aBook As Workbook, Sh As Worksheet
    With Application
        .CutCopyMode = xlCopy
        .ScreenUpdating = False
    End With
    Set aBook = ActiveWorkbook
    NazvLista = ActiveSheet.Name
    DiaAdr = Selection.Address()
    Set r = ActiveSheet.Range(DiaAdr)
    For k = 1 To Workbooks.Count
        ' Не работать с образцом и с книгой запуска макроса (Personal или надстройкой)
        If Not ((Workbooks(k) Is aBook) Or (Workbooks(k) Is ThisWorkbook)) Then
            If SheetExists(NazvLista, Workbooks(k)) Then
                With Workbooks(k).Worksheets(NazvLista)
                    .Activate
                    r.Copy
                    With .Range(DiaAdr)
                        .PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone
                        .Select
                        For i = 1 To .Rows.Count
                            For j = 1 To .Columns.Count
                                .Cells(i, j).Formula = r.Cells(i, j).Formula
                            Next
                        Next
                    End With
                End With
            Else
                Msg = Msg & "В книге " & Workbooks(k).Name & " не существует лист " & NazvLista & vbCrLf
            End If
        End If
    Next k
    aBook.Activate
    If Msg <> "" Then MsgBox Msg
    Set aBook = Nothing: Set r = Nothing
End Sub
 
Sub Модификацировать_формулы_по_книгам()
    If TypeName(Selection) <> "Range" Then MsgBox "Не выделен диапазон. Работа прекращена.": Exit Sub
    Dim i&, j&, k%, DiaAdr$, NazvLista$, Msg$, fPrefix$, fPostfix$, F$, r As Range, aBook As Workbook, Sh As Worksheet
    fPostfix = InputBox("Введите добавляемую правую часть формулы либо шаблон изменения, в котором @@@ -старая формула без знака =")
    If fPostfix = "" Then Exit Sub
    If UBound(Split(fPostfix, "@@@")) = 1 Then
        fPrefix = Split(fPostfix, "@@@")(0)
        fPostfix = Split(fPostfix, "@@@")(1)
    End If
    If Left(fPrefix, 1) <> "=" Then fPrefix = "=" & fPrefix
    With Application
        .CutCopyMode = xlCopy
        .ScreenUpdating = False
    End With
    Set aBook = ActiveWorkbook
    NazvLista = ActiveSheet.Name
    DiaAdr = Selection.Address()
    Set r = ActiveSheet.Range(DiaAdr)
    For k = 1 To Workbooks.Count
        ' Не работать с книгой запуска макроса (Personal или надстройкой)
        If Not (Workbooks(k) Is ThisWorkbook) Then
        If SheetExists(NazvLista, Workbooks(k)) Then
            With Workbooks(k).Worksheets(NazvLista)
                .Activate
                r.Copy
                With .Range(DiaAdr)
                    .PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone
                    .Select
                    For i = 1 To .Rows.Count
                        For j = 1 To .Columns.Count
                            F = .Cells(i, j).Formula
                            If Left(F, 1) = "=" Then F = Mid(F, 2)
                            F = fPrefix & F & fPostfix
                            .Cells(i, j).Formula = F
                        Next
                    Next
                End With
            End With
        Else
            Msg = Msg & "В книге " & Workbooks(k).Name & " не существует лист " & NazvLista & vbCrLf
        End If
        End If
    Next k
    aBook.Activate
    If Msg <> "" Then MsgBox Msg
    Set aBook = Nothing: Set r = Nothing
End Sub
Function SheetExists(SheetName, wb As Workbook) As Boolean
    Dim Sh As Worksheet
    For Each Sh In wb.Worksheets
        If Sh.Name = SheetName Then SheetExists = True: Exit Function
    Next Sh
End Function
3
fever brain
oh my god
1120 / 594 / 115
Регистрация: 05.01.2016
Сообщений: 1,834
Записей в блоге: 7
05.02.2016, 21:45 #126
Удобная таблица

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

Если нужно поменять данные, то нужно отключить интерактивность, отредактировать таблицу
и обновить.

Например, у меня множество знакомых, и я могу перепутать чье-то имя или телефон
и такая таблица очень поможет, если нажать на столбец с именами, и на строку с телефоном
также предусмотрен буфер обмена, тесть всё, что выделилось, немедленно копируется
0
Миниатюры
Авторские программы, библиотеки, надстройки и шаблоны   Авторские программы, библиотеки, надстройки и шаблоны  
Вложения
Тип файла: xls Удобная таблица.xls (67.0 Кб, 19 просмотров)
fever brain
oh my god
1120 / 594 / 115
Регистрация: 05.01.2016
Сообщений: 1,834
Записей в блоге: 7
05.02.2016, 21:53 #127
Немного исправил
0
Вложения
Тип файла: xls Удобная таблица.xls (59.0 Кб, 22 просмотров)
fever brain
oh my god
1120 / 594 / 115
Регистрация: 05.01.2016
Сообщений: 1,834
Записей в блоге: 7
07.02.2016, 12:45 #128
И еще лучше, добавил функционала:
теперь можно скопировать(удалить) лист вместе с макросами и кнопками,
вместо выделения искомой ячейки она просто подсвечивается, (что на практике оказалось удобнее)
телефоны отображаются в форматированном виде, но только в том случае если в заголовке стоит надпись "телефон" а в ячейке есть номер
Visual Basic
1
Const frmt = "[<=9999999]###-##-##;# (###) ###-##-##", ph = "Телефон"
таблица форматируется так, чтобы можно было добавлять ниже сколько угодно надписей
0
Миниатюры
Авторские программы, библиотеки, надстройки и шаблоны  
Вложения
Тип файла: xls Удобная таблица2.xls (76.0 Кб, 39 просмотров)
KoGG
5274 / 1347 / 320
Регистрация: 23.12.2010
Сообщений: 2,019
Записей в блоге: 1
02.06.2016, 16:58 #129
Генератор анаграмм и анаграмм с неиспользованным остатком букв.
Ускорить работу программы
2
fever brain
oh my god
1120 / 594 / 115
Регистрация: 05.01.2016
Сообщений: 1,834
Записей в блоге: 7
16.06.2016, 16:43 #130
UserForm как обычное окно

Для демонстрации нажмите на картинку, на листе




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
Option Explicit
'
'Делаем окно с иконкой, системным меню и кнопками *свернуть, развернуть*
'Примечание, для иконки нужен объект Image1 на List1 с иконкой в формате ICO
'
'by the Fever Brain 2016
'
Private Const GWL_EXSTYLE = (-20)
Private Const GWL_STYLE = (-16)
Private Const HWND_TOP = 0
Private Const ICON_BIG = 1&
Private Const ICON_SMALL = 0&
Private Const SWP_HIDEWINDOW = &H80
Private Const WM_SETICON = &H80
Private Const WS_EX_APPWINDOW = &H40000
Private Const WS_MAXIMIZEBOX = &H10000
Private Const WS_MINIMIZEBOX = &H20000
Private Const WS_SYSMENU = &H80000
 
Private Declare Function DrawMenuBar Lib "user32" (ByVal hWnd As Long) As Long
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function GetActiveWindow Lib "user32.dll" () As Long
Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long) As Long
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Declare Function SetWindowPos Lib "user32" (ByVal hWnd As Long, ByVal hWndInsertAfter As Long, ByVal X As Long, ByVal Y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
 
 
Private Sub UserForm_Activate()
    Dim hWnd As Long
    Dim GWL As Long
    Dim hImg As Long
    Dim ret As Long
    hWnd = FindWindow(vbNullString, Me.Caption)
    GWL = GetWindowLong(hWnd, GWL_STYLE) Or WS_SYSMENU Or WS_MINIMIZEBOX Or WS_MAXIMIZEBOX Or WS_EX_APPWINDOW
    '-------Добавление иконки
    hImg = Лист1.Image1.Picture.Handle
    hWnd = FindWindow(vbNullString, Me.Caption)
    ret = SendMessage(hWnd, WM_SETICON, ICON_SMALL, ByVal hImg)
    ret = SendMessage(hWnd, WM_SETICON, ICON_BIG, ByVal hImg)
    SetWindowLong hWnd, GWL_STYLE, (GWL)
    DrawMenuBar hWnd
End Sub
2
Вложения
Тип файла: xls UserForm как обычное окно.xls (38.0 Кб, 54 просмотров)
bedvit
598 / 158 / 18
Регистрация: 20.05.2016
Сообщений: 619
Записей в блоге: 6
13.09.2016, 13:01 #131
Хочу поделиться своей библиотекой.
Для всех кто любит VBA - помощник в длинной арифметики.
Реализация через .XLL - устанавливается как надстройка и готово!
Или просто запускается двойным кликом.
Упор был сделан на производительность.
Последняя версия всегда здесь.
1
anton-sf
19 / 19 / 4
Регистрация: 29.03.2015
Сообщений: 100
02.11.2016, 15:13 #132
Моя реализация календаря (выбора даты) для Excel (2003)
В файле 1 лист с фигурой-кнопочкой для теста, 1 форма, 1 модуль и 3 класса
Кнопочки над которыми пролетает курсор подсвечиваются - идея реализации забугорная, не помню кто и где

Имеется ввиду реализация средствами Excel, без .ocx и .dll, не считая немногих функций Win API
В коде много кириллицы, ну это пример для разбора и внедрения, всё переименовывать очень лень
Выбирать дату можно как стрелками клавиатуры так и мышкой
2
Миниатюры
Авторские программы, библиотеки, надстройки и шаблоны  
Вложения
Тип файла: rar VBA Excel Календарь Форма (Anton_SF).rar (93.6 Кб, 16 просмотров)
Emule-C2H5OH
5 / 2 / 0
Регистрация: 04.11.2016
Сообщений: 12
07.11.2016, 14:51 #133
Понадобилось мне сортировать по алфавиту строковые массивы содержащие десятки тысяч строк, Метод пузырька работал чрезвычайно долго, нашел в инете интересную сортировку числовых значений в массиве, переделал под строки, скорость работы пристойная.
Возможно еще кому-либо пригодится, как пригодилось мне.
Функция сортирующая строковый массив по алфавиту комбинируя Метод слияния и Метод Хоара
Сортирует с учётом всех символов строки.
0
Вложения
Тип файла: zip Sort_ABC.zip (1.8 Кб, 14 просмотров)
Emule-C2H5OH
5 / 2 / 0
Регистрация: 04.11.2016
Сообщений: 12
07.11.2016, 22:26 #134
Функция сортирующая строковый массив по алфавиту комбинируя Метод слияния и Метод Хоара
Сортирует с учётом всех символов строки.
Поправил проблему "Ё".
0
Вложения
Тип файла: rar Sort_ABC_2.rar (2.9 Кб, 21 просмотров)
anton-sf
19 / 19 / 4
Регистрация: 29.03.2015
Сообщений: 100
11.12.2016, 17:26 #135
Цитата Сообщение от anton-sf Посмотреть сообщение
Моя реализация календаря (выбора даты) для Excel (2003)
В файле 1 лист с фигурой-кнопочкой для теста, 1 форма, 1 модуль и 3 класса
Кнопочки над которыми пролетает курсор подсвечиваются - идея реализации забугорная, не помню кто и где
Имеется ввиду реализация средствами Excel, без .ocx и .dll, не считая немногих функций Win API
В коде много кириллицы, ну это пример для разбора и внедрения, всё переименовывать очень лень
Выбирать дату можно как стрелками клавиатуры так и мышкой
Исправил огрехи с перемещением фокуса стрелками и добавил недостающую константу - проверил, работает

Картинку забыл вложить - вот
1
Миниатюры
Авторские программы, библиотеки, надстройки и шаблоны  
Вложения
Тип файла: rar VBA Excel Календарь Форма (Anton_SF).rar (73.4 Кб, 26 просмотров)
fever brain
oh my god
1120 / 594 / 115
Регистрация: 05.01.2016
Сообщений: 1,834
Записей в блоге: 7
12.12.2016, 03:42 #136
Посмотрите, тут тоже без длл и прочей ерунды простая реализация календаря на форме
Реализованно почти 2 года назад Календарь, который понравится всем (готовое решение)
0
anton-sf
19 / 19 / 4
Регистрация: 29.03.2015
Сообщений: 100
12.12.2016, 11:23 #137
fever brain,
я видел, в том числе и другие реализации, мне же хотелось плоский интерфейс с подсветкой кнопочек под мышью и с возможностью менять размер кнопочек не сильно утруждаясь

Добавлено через 31 минуту
И моему интерфейсу другие календари не подходят, вот небольшое видео как выглядит календарик https://www.youtube.com/watch?v=DT0knjft2CE
0
dzug
680 / 220 / 18
Регистрация: 17.01.2011
Сообщений: 554
Записей в блоге: 1
22.01.2017, 20:48 #138
Нашёл в архиве старую поделку, скачанную лет 15 назад. Это программа учёта по складу и там есть шикарный демо-ролик. Особенно понравился демо-ролик блока закупки в графическом виде.
Автор указан в прилагаемых файлах.
Запускать в "старых" версиях Экселя: 1997, 2003 г. и раньше.
Что бы Вас не раздражали настройки , распакуйте файлы в папку по адресу : C:\Doors
1
Вложения
Тип файла: rar Doorspk.rar (3.60 Мб, 26 просмотров)
Соколиный глаз
C#
179 / 161 / 112
Регистрация: 25.07.2014
Сообщений: 2,870
Записей в блоге: 10
Завершенные тесты: 1
07.04.2017, 18:33 #139
Сортировка выбором. Начинающим, наверно будет полезно.
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
Sub VSort()
    For i = 1 To 10 Step 1
        For j = i + 1 To 10 Step 1
            If ActiveSheet.Cells(i, 1) > ActiveSheet.Cells(j, 1) Then
                ActiveSheet.Cells(i, 1) = ActiveSheet.Cells(i, 1) + ActiveSheet.Cells(j, 1)
                ActiveSheet.Cells(j, 1) = ActiveSheet.Cells(i, 1) - ActiveSheet.Cells(j, 1)
                ActiveSheet.Cells(i, 1) = ActiveSheet.Cells(i, 1) - ActiveSheet.Cells(j, 1)
            End If
        Next j
    Next i
End Sub
Добавлено через 4 минуты
Сортировка пузырьком:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
Sub VSort()
    For i = 1 To 10 Step 1 ' ячейки расположены вертикально, их 10
        For j = 1 To 10 - i Step 1
            If ActiveSheet.Cells(j, 1) > ActiveSheet.Cells(j + 1, 1) Then
                ActiveSheet.Cells(j, 1) = ActiveSheet.Cells(j, 1) + ActiveSheet.Cells(j + 1, 1)
                ActiveSheet.Cells(j + 1, 1) = ActiveSheet.Cells(j, 1) - ActiveSheet.Cells(j + 1, 1)
                ActiveSheet.Cells(j, 1) = ActiveSheet.Cells(j, 1) - ActiveSheet.Cells(j + 1, 1)
            End If
        Next j
    Next i
End Sub
0
Владимир_Сар
58 / 57 / 13
Регистрация: 10.09.2009
Сообщений: 255
16.09.2017, 15:57 #140
Игра 2048 может, кому нравится! Сам доходил только до 1024
2048.zip
0
16.09.2017, 15:57
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.09.2017, 15:57

Хранение картинок в теле надстройки
Добрый день! Возможно ли хранить картинку в самом файле (&quot;надстрока.xlsx&quot;) и...

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

Добавление надстройки Excel в Ribbon
Здравствуйте. Написал я две надстройки на VBA для Excel, и захотелось мне...


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

Или воспользуйтесь поиском по форуму:
140
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru