Форум программистов, компьютерный форум, киберфорум
Наши страницы

VBA

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 2, средняя оценка - 5.00
аналитика
здесь больше нет...
3349 / 1664 / 184
Регистрация: 03.02.2010
Сообщений: 1,219
#1

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

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

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

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

Утилиты


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

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



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

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

Веб-сервис


Игры




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





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

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

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

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

ошибка в коде надстройки - VBA
Надстройка выдает ошибку 13. В коде ругается на строку: prob = frmMain.txtSignifLevel.Value. :rtfm: Что значит эта строка? Совсем не...

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

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

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

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

153
Catstail
Модератор
23498 / 11606 / 1893
Регистрация: 12.02.2012
Сообщений: 18,945
11.06.2012, 19:20 #16
Предлагаю свою поделку - надстройку с функциями:

1) Убрать из выделенного диапазона числа, но оставить формулы
2) Объединить несколько смежных ячеек в строке без потери данных
3) То же для столбца
4) Подсчет в выделенном диапазоне к-ва нечисловых ячеек (и выделение их цветом)
5) Перевод текста в выделенном диапазоне в загл. буквы
6) То же - в строчные
7) Замена белиберды, которая возникает, когда забудешь переключить rus-lat (в обе стороны)

Может, будет полезно...
10
Вложения
Тип файла: zip BobServ.zip (27.1 Кб, 345 просмотров)
Catstail
Модератор
23498 / 11606 / 1893
Регистрация: 12.02.2012
Сообщений: 18,945
18.06.2012, 21:20 #17
Хочу поделиться способом хранения exe-файлов в рабочей книге Excel. Может быть полезным в том случае, когда exe-шник не должен сидеть в папке. Выгружаете, запускаете, удаляете... Выражаю надежду, что служить это будет только целям добра.
10
Вложения
Тип файла: zip hide_exe.zip (157.2 Кб, 385 просмотров)
Catstail
Модератор
23498 / 11606 / 1893
Регистрация: 12.02.2012
Сообщений: 18,945
25.06.2012, 12:10 #18
Вот еще поделка: dll-ка, содержащая следующие классы:

1) cDBF - для работы с DBF-ами (dbase-III);
2) clsCal - симпатичный (как мне кажется) календарь;
3) clsFstr - класс для работы с текстовым файлом (входным), как с массивом строк;
4) clsCoder - кодировщик строк

Достаточно подробная инструкция и примеры - в архиве.
8
Вложения
Тип файла: zip Service.zip (179.4 Кб, 423 просмотров)
Catstail
Модератор
23498 / 11606 / 1893
Регистрация: 12.02.2012
Сообщений: 18,945
27.06.2012, 12:04 #19
А вот еще небесполезная штука:

1) Номера 3000 встроенных иконок Excel (использовать в FaceID)
2) Коды стандартных цветов
3) Коды символов (двойной щелчок по коду дает десятичный и шестнадцатеричный коды символа)
5
Вложения
Тип файла: zip Коды-0.zip (295.8 Кб, 409 просмотров)
Catstail
Модератор
23498 / 11606 / 1893
Регистрация: 12.02.2012
Сообщений: 18,945
29.06.2012, 12:07 #20
Вот достаточно старая поделка (была в 2005-м опубликована на vbrussian.com). Пример создания "web-сервиса" средствами asp и использование Excel, как web-клиента для построения диаграмм и графиков. В прилагаемом архиве - статья с картинками и все исходники.
7
Вложения
Тип файла: zip XlsWebCli.zip (371.2 Кб, 326 просмотров)
Catstail
Модератор
23498 / 11606 / 1893
Регистрация: 12.02.2012
Сообщений: 18,945
20.07.2012, 17:31 #21
Хочу поделиться способом хранения данных в теле модуля (в виде комментариев). Код прилагаю.
7
Вложения
Тип файла: zip VBE-000.zip (17.5 Кб, 303 просмотров)
Catstail
Модератор
23498 / 11606 / 1893
Регистрация: 12.02.2012
Сообщений: 18,945
30.07.2012, 19:10 #22
Вот на что способен Excel: шестнадцатеричный редактор файлов. Не очень уклюже, но работает.Эстеты от программирования, сильно не ругайте за код...
4
Вложения
Тип файла: zip HexEdit-01.zip (165.5 Кб, 160 просмотров)
KoGG
5271 / 1344 / 316
Регистрация: 23.12.2010
Сообщений: 2,019
Записей в блоге: 1
14.08.2012, 14:34 #23
Файл GPS_Navi_Assistant позволяет работать в Excel с приемником GPS протокола NMEA с ежесекундным обновлением данных.
Подробнее.
Получение данных GPS производится через порт COM3.
В случае работы с другим портом следует изменить константу strPort.
Графически представлен курсовой компАсс, диаграммы по положению и уровню сигнала спутников.
Данные по скорости, курсу и высоте антенны усредняются за последние 3 секунды.

Кнопка "Record" однократно сохраняет текущие данные из диапазона "SavingRow" в конец списка на листе Data.
Кнопка "Track On" повторяет эту процедуру с заданной периодичностью, опираясь на время, полученное через поток GPS.
Состав сохраняемых данных можно менять, перетаскивая нужные именнованные диапазоны и переопределяя именованный диапазон
"SavingRow".
Приложение может работать при плохом качестве приема сигнала GPS, в таких случаях сохраняются последние полученные значения параметров.
Уровень сигнала конкретного спутника обнуляется, в случае отсутствия упоминания спутника в потоке GPS в течении 30 секунд.
Данные по конкретному спутнику удаляются (до нового обнаружения), в случае отсутствия упоминания спутника в потоке GPS в течении 5 минут.

Приложение создано по просьбе штурмана дальнего плавания Евгения Денисова и протестировано в реальных условиях.

P.S.
В случае отсутствия GPS приемника можно подключить GPS КПК через программу GPS_Gate.
GPS_Gate позволяет также симулировать сигнал GPS на выбранный COM порт и проигрывать
ранее записанный Log файл с потоком данных GPS.


Файл GPS_Stream_Viewer позволяет выводить сырой поток данных GPS NMEA, получаемых через порт COM3, на активный лист Excel.

Файл GPS_NMEA_Log_File_Importer позволяет извлечь данные из Log файла *.nmea с данными GPS NMEA.
5
Вложения
Тип файла: zip GPS_Navi_Assistant_v33.zip (305.9 Кб, 99 просмотров)
Тип файла: zip GPS_Stream_Viewer.zip (39.3 Кб, 81 просмотров)
Тип файла: zip GPS_NMEA_Log_File_Importer.zip (63.7 Кб, 72 просмотров)
Catstail
Модератор
23498 / 11606 / 1893
Регистрация: 12.02.2012
Сообщений: 18,945
25.09.2012, 13:49 #24
Предположим, вы хотите спрятать архив каких-либо файлов A.zip (A.rar) на своем ПК. Спрятать так, чтобы посторонние люди (которые могут зайти) не смогли найти... Действовать нужно так:

1) Создать папку, а в ней подпапку Work
2) сбросить в нее прилагаемый файл Steg.xls
3) Cбросить в Work архив A.zip (A.rar)
4) Накидать в папку десятка полтора разных doc-файлов
5) открыть Steg.xls и щелкнуть по надписи "Спрятать файл"
6) дождаться "OK"

При этом произойдет следующее: архив будет нарезан на двоичные блоки и каждый блок будет приклеен к одному из doc-файлов. Доки даже будут читаться. Вот только пересохранять их не надо.

Теперь упаковывайте "потяжелевшие" doc-файлы, называйте упаковку "Архив документов за 2009 г"
и держите где удобно.

Чтобы достать файл - распакуйте "Архив документов за 2009 г" в Work, откройте Steg.xls и щелкните по надписи "Извлечь"

Не проверял работу в 2007 и более поздних офисах.

Эта идея получила развитие в теме: Стеганография - упаковка произвольных файлов в документы MS Office
6
Вложения
Тип файла: zip Steg.zip (12.2 Кб, 115 просмотров)
dzug
677 / 217 / 15
Регистрация: 17.01.2011
Сообщений: 548
Записей в блоге: 1
30.11.2012, 16:40 #25
Подключить DLL, передать ей команду (строку) и получить ответ .

Во вложенном файле можно не только поиграть в шахматы , но и посмотреть как VBA взаимодействует с DLL. Заодно можно оценить "интелект" библиотеки DLL , размером всего 40 КБ, который играет в шахматы за компьютер..

P.S. Разработка была скачана около 10 лет назад. Автор указан в прилагаемых файлах.
1
Вложения
Тип файла: rar Chess__64.rar (96.6 Кб, 181 просмотров)
dzug
677 / 217 / 15
Регистрация: 17.01.2011
Сообщений: 548
Записей в блоге: 1
30.11.2012, 16:58 #26
Надстройка .XLA, сделана для автоматизации часто встречающихся операций при работе с несколькими листами и блоками ячеек.
3
Вложения
Тип файла: zip serg.zip (68.6 Кб, 197 просмотров)
KoGG
5271 / 1344 / 316
Регистрация: 23.12.2010
Сообщений: 2,019
Записей в блоге: 1
01.12.2012, 13:53 #27
Процедура Qb_PLAY проигрывает музыку из символьных строк стандарта АВС
аналогично оператору QBASIC PLAY

Кликните здесь для просмотра всего текста
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
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
'Процедура Qb_PLAY проигрывает музыку из символьных строк стандарта АВС
'аналогично оператору QBASIC PLAY
'http//ru.wikipedia.org/wiki/ABC_(%D0%BD%D0%BE%D1%82%D0%BD%D0%B0%D1%8F_%D0%B7%D0%B0%D0%BF%D0%B8%D1%81%D1%8C)
Option Explicit
Private Declare Function Beep Lib "kernel32" (ByVal dwFreq As Long, ByVal dwDuration As Long) As Long
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Private freq%(0 To 6, 0 To 11)
Dim freq_Flag As Boolean
 
Public Sub Qb_PLAY(MuzStr As String)
  If Not freq_Flag Then Call freq_Init
  Dim Muz$, Muz2$
  Static generalOktava%
  Dim oktava%
  Static tempo%   ' Задание темпа или четвертных нот, которые исполняются в минуту. n от 32 до 255.
  If tempo = 0 Then tempo% = 120 '  По умолчанию 120
  Dim Nota%, curPosition%, curNota4%
  Dim currentNotaPauseDuration&, currentNotaDuration&, pauseDuration&
  Static takt%
  If takt = 0 Then takt = 240000 / tempo
  Dim isNota As Boolean
  Dim isPause As Boolean
  Dim pointsNum%
  Static generalNotaMultipl!
  If generalNotaMultipl = 0 Then generalNotaMultipl = 0.875
  Static NotaLong!
  Dim curMultipl!, tempFlo!, curPause!
  Dim tempLong&
  Dim i%, j%, LenMuzStr%
  LenMuzStr = Len(MuzStr)
  For i = 1 To LenMuzStr
   Muz = Mid(MuzStr, i, 1)
   If i < LenMuzStr Then Muz2 = Mid(MuzStr, i + 1, 1)
   isNota = False
   isPause = False
   oktava = generalOktava
   curNota4 = 0
   Select Case Muz
         Case "C"
             Nota = 0
             isNota = True
         Case "D"
             Nota = 2
             isNota = True
         Case "E"
             Nota = 4
             isNota = True
         Case "F"
             Nota = 5
             isNota = True
         Case "G"
             Nota = 7
             isNota = True
         Case "A"
             Nota = 9
             isNota = True
         Case "B"
             Nota = 11
             isNota = True
         Case "N" ' Nнота Играет определенную ноту (0 - 84) в диапазоне семи октав (0 - пауза)."
                 curPosition = i + 1
                 If extractNumber(curNota4, MuzStr, curPosition) Then
                     i = curPosition - 1
                     If (curNota4) Then
                         curNota4 = curNota4 - 1
                         oktava = curNota4 \ 12
                         Nota = curNota4 Mod 12
                         isNota = True
                     Else
                         isPause = True
                     End If
                 End If
         Case "O" 'Oоктава   Задает текущую октаву (0 - 6).
             curPosition = i + 1
             If extractNumber(oktava, MuzStr, curPosition) Then
                 i = curPosition - 1
                 generalOktava = oktava
             End If
         Case ">"
             generalOktava = generalOktava + 1
         Case "<"
             generalOktava = generalOktava - 1
         Case "M"
              Select Case Muz2
                 Case "N" 'MN    Нормаль. Каждая нота звучит 7/8 времени, заданного в команде L
                     generalNotaMultipl = 0.875 '  =7/8
                     i = i + 1
                 Case "L" 'ML    Легато. Каждая нота звучит полный интервал времени, заданного в команде L
                     generalNotaMultipl = 1
                     i = i + 1
                 Case "S" 'MS    Стаккато. Каждая нота звучит 3/4 времени, заданного в команде L
                     generalNotaMultipl = 0.75 ' =3/4
                     i = i + 1
                 Case "F" 'MF Режим непосредственного исполнения. Т.е. на время проигрывания ноты программа приостанавливается. Используется по умолчанию
                     i = i + 1 'Сдвигаем точку чтения и ничего не делаем."
                 Case "B" 'MB проигрывние в буффер
                     i = i + 1 'Сдвигаем точку чтения и ничего не делаем."
               End Select
         Case "L" 'Lразмер   Задает длительность каждой ноты (1 - 64). L1 - целая нота, L2 - 1/2 ноты и т.д.
             curPosition = i + 1
             If extractNumber(curNota4, MuzStr, curPosition) Then
                 i = curPosition - 1
                 tempFlo = curNota4
                 NotaLong = 1 / tempFlo
             End If
         Case "T" 'Tтемп Задает темп исполнения в четвертях в минуту (32-255).По умолчанию 120
             curPosition = i + 1
             If extractNumber(tempo, MuzStr, curPosition) Then
                i = curPosition - 1
                takt = 240000 / tempo ' миллисекунд на 1 целую ноту. 240000= 60 сек * 1000 мсек/сек *4 четвертей в ноте
             End If
         Case "P" 'Pпауза    Задает паузу (1 - 64). P1 - пауза в целую ноту, P2 - пауза в 1/2 ноты и т.д.
             curPosition = i + 1
             If extractNumber(curNota4, MuzStr, curPosition) Then
                 tempFlo = curNota4
                 curPause = 1 / tempFlo
                 i = curPosition - 1
                 isPause = True
             End If
         Case " " 'Есть в некоторых текстах. Вероятно это пауза длительностью в текущую ноту
             curPause = NotaLong
             isPause = True
    End Select
    If isNota Then
      Select Case Muz2
         Case "#" ' диез
             Nota = Nota + 1
             i = i + 1
         Case "+" ' диез
             Nota = Nota + 1
             i = i + 1
         Case "-" ' бемоль
            Nota = Nota - 1
            i = i + 1
       End Select
       curPosition = i + 1
       If extractNumber(curNota4, MuzStr, curPosition) Then
         currentNotaDuration = takt / curNota4
         i = curPosition - 1
       End If
     End If
     If oktava < 0 Then oktava = 0
     If oktava > 6 Then oktava = 6
     If isNota Or isPause Then
       curPosition = i + 1
       pointsNum = pointsCount(MuzStr, curPosition)
       If pointsNum > 0 Then i = curPosition - 1
       curMultipl = 1
       For j = 1 To pointsNum
            curMultipl = curMultipl * 1.5
       Next
       currentNotaPauseDuration = takt * NotaLong
     End If
     If isNota Then
        curMultipl = curMultipl * generalNotaMultipl
        currentNotaDuration = currentNotaPauseDuration * curMultipl
        If curMultipl > 1 Then
          pauseDuration = 0
        
        Else
          pauseDuration = currentNotaPauseDuration - currentNotaDuration
        End If
        If Nota < 0 Then Nota = 0
        If Nota > 11 Then Nota = 11
        tempLong = freq(oktava, Nota)
        Beep tempLong, currentNotaDuration
        Sleep (pauseDuration) ' API Sleep
        'Sleep (currentNotaPauseDuration) ' API Sleep
     End If
     If isPause Then
         pauseDuration = takt * curPause * curMultipl
         Sleep (pauseDuration)
     End If
    '=====================
'    If isNota Then
'        Debug.Print "Muz= " & Muz;
'        Debug.Print " Nota= " & Nota;
'        Debug.Print " oktava= " & oktava;
'        Debug.Print " NotaLong= " & NotaLong;
'    '    Debug.Print " tempo= " & tempo;
'    '    Debug.Print " takt= " & takt;
'        Debug.Print " currentNotaDuration= " & currentNotaDuration;
'        Debug.Print " pauseDuration= " & pauseDuration;
'    '    Debug.Print " currentNotaPauseDuration= " & currentNotaPauseDuration;
'    '    Debug.Print " curMultipl= " & curMultipl;
'        Debug.Print
'    End If
    '=====================
   Next
End Sub
 
Private Sub freq_Init()
    Dim TT$, i%, M As Variant
    'Нота  0  1       2   3       4   5   6       7   8       9   10      11
    'Нота  C  C#/D-   D   D#/E-   E   F   F#/G-   G   G#/A-   A   A#/B?   B
    TT = "65,69,73,78,82,87,92,98,104,110,117,123"                     '0 = Большая октава
    M = Split(TT, ",")
    For i = 0 To 11: freq(0, i) = Val(M(i)): Next
    TT = "131,139,147,156,165,175,185,196,208,220,233,247"             '1 = Малая октава
    M = Split(TT, ",")
    For i = 0 To 11: freq(1, i) = Val(M(i)): Next
    TT = "262,277,294,311,330,349,370,392,415,440,466,494"             '2 = 1-я октава
    M = Split(TT, ",")
    For i = 0 To 11: freq(2, i) = Val(M(i)): Next
    TT = "523,554,587,622,659,698,740,784,831,880,932,988"             '3 = 2-я октава
    M = Split(TT, ",")
    For i = 0 To 11: freq(3, i) = Val(M(i)): Next
    TT = "1047,1109,1175,1245,1319,1397,1480,1568,1661,1760,1865,1976" '4 = 3-я октава
    M = Split(TT, ",")
    For i = 0 To 11: freq(4, i) = Val(M(i)): Next
    TT = "2093,2218,2349,2489,2637,2794,2960,3136,3322,3520,3729,3951" '5 = 4-я октава
    M = Split(TT, ",")
    For i = 0 To 11: freq(5, i) = Val(M(i)): Next
    TT = "4186,4435,4699,4978,5274,5588,5920,6272,6645,7040,7459,7902" '6 = 5-я октава
    M = Split(TT, ",")
    For i = 0 To 11: freq(6, i) = Val(M(i)): Next
    freq_Flag = True
'    Dim j
'    For i = 0 To 6
'        For j = 0 To 11
'            Debug.Print freq(i, j);
'        Next
'        Debug.Print
'    Next
End Sub
 
Private Function extractNumber%(ByRef myNumber%, MuzStr$, ByRef curPosition%)
    Dim i%, digitsNumber%, curDigit%, Muz$, AscMuz%
    myNumber = 0
    For i = curPosition To Len(MuzStr)
        Muz = Mid(MuzStr, i, 1)
        AscMuz = Asc(Muz)
        If AscMuz > 47 And AscMuz < 58 Then ' Коды ASCII цифр '0' = 48 , '9' = 57
            curDigit = AscMuz - 48
            digitsNumber = digitsNumber + 1
            myNumber = myNumber * 10 + curDigit
        Else
            extractNumber = digitsNumber
            Exit Function
        End If
        curPosition = curPosition + 1
    Next
    extractNumber = digitsNumber
End Function
 
Private Function pointsCount%(MuzStr$, ByRef curPosition%)
    Dim pointsNumber%, i%, Muz$
    For i = curPosition To Len(MuzStr)
        Muz = Mid(MuzStr, i, 1)
        If Muz = "." Then
            pointsNumber = pointsNumber + 1
        Else
            pointsCount = pointsNumber
            curPosition = curPosition + 1
            Exit Function
        End If
    Next
    pointsCount = pointsNumber
End Function
 
Sub main_Qb_PLAY()
Rem Theme from The Godfather
    Qb_PLAY "MNT150L4O2EA>C<BA>C<ABAFGL2E.P4L4EA>C<BA>C<ABAFEL2D.P4"
    Qb_PLAY "L4DFAL2B.P4L4DFAL2A.P4L4EGFFEGFEDC<BL2A"
    
    ' Jingle Bells
'    Qb_PLAY ("MNT255L4O2DBAGL2D.L8DDL4DBAGL2E.L4EE>C<BAL1F+L4>DDC<A")
'    Qb_PLAY ("L1BL4DBAGL2D.L8DDL4DBAGL2E.L4EE>C<BA>DDDDEDC<AL2G.P4L4B")
'    Qb_PLAY ("BL2BL4BBL2BL4B>D<G.L8AL1BL4>CCC.L8CL4C<BBL8BBL4BAABL2A")
'    Qb_PLAY (">DL4<BBL2BL4BBL2BL4B>D<G.L8AL1BL4>CCC.L8CL4C<BBL8BBL4>D")
'    Qb_PLAY ("DC<AL1G")
'    'Sleep (5000)
'    '  KATIUSHA
'    Qb_PLAY ("MST255L2O2E.L4F+L2G.L4EGGF+EL2F+L4<BP4L2>F+.L4GL2A.L4F+")
'    Qb_PLAY ("AAGF+L1EL2B>EDL4EDCC<BAL2BEP4>CL4<AL2B.L4GF+<B>GF+L1E")
'    Qb_PLAY ("L2B>EDL4EDCC<BAL2BEP4>CL4<AL2B.L4GF+<B>GF+L1E")
'    'Sleep (5000)
'    ' Bach 1
'    Qb_PLAY ("MNT150L8O3AL16>C<AL8EL16AEL8CL16ECL4<AL16EA>C<ABABAG+")
'    Qb_PLAY ("B>D<B>C<B>C<AL8>AL16>C<AL8EL16AEL8CL16ECL4<AL16>C<BL8>C")
'    Qb_PLAY ("L16C<BL8>CAL16C.L32DL8C<BL16>ED+L8EL16ED+L8E>CL16<E.L32F")
'    Qb_PLAY ("L8ED+L16<B>EGEF+EF+ED+F+AF+GF+GF+EGED+EAED+EBED+E>C<E")
'    Qb_PLAY ("D+E>C<BABGF+EL8GL32F+GL16F+L4EL8AL16>C<AL8EL16AEL8CL16E")
'    Qb_PLAY ("CL4<AL16EA>C<ABABAG+B>D<B>C<B>C<AL8>AL16>C<AL8EL16AEL8C")
'    Qb_PLAY ("L16ECL4<AL16>C<BL8>CL16C<BL8>CAL16C.L32DL8C<BL16>ED+L8E")
'    Qb_PLAY ("L16ED+L8E>CL16<E.L32FL8ED+L16<B>EGEF+EF+ED+F+AF+GF+GF+")
'    Qb_PLAY ("EGED+EAED+EBED+E>C<ED+E>C<BABGF+EL8GL32F+GL16F+L4EL8E")
'    Qb_PLAY ("L16GEL8<BL16>E<BL8GL16BGL4EL8AG+>DC+GL16FEL8FDFL16AFL8D")
'    Qb_PLAY ("L16FDL8<BL16>D<BL4GL8>CL16ECDCDC<B>DFDEDEDCEC<B>CFC<B")
'    Qb_PLAY (">CGC<B>CAC<B>CAGFGEDCL8EL32DEL16DL4CL16EDL8EL16EDL8E>C")
'    Qb_PLAY ("<EL64FL8EDL16DCL8DL16DCL8DBDL64EL8DCAL16>C<AGL4F.L16A")
'    Qb_PLAY ("FEL4D.L16FDCL4<A+L16A+AA+AL4G+L8FEAG+>DL16C<B>C<A>CEL8A")
'    Qb_PLAY ("EL16DC<B>CL4<AL8>EL16GEL8<BL16>E<BL8GL16BGL4EL8AG+>DC+")
'    Qb_PLAY ("GL16FEL8FDFL16AFL8DL16FDL8<BL16>D<BL4GL8>CL16ECDCDC<B")
'    Qb_PLAY (">DFDEDEDCEC<B>CFC<B>CGC<B>CAC<B>CAGFGEDCL8EL32DEL16DL4C")
'    Qb_PLAY ("L16EDL8EL16EDL8E>C<EL64FL8EDL16DCL8DL16DCL8DBDL64EL8D")
'    Qb_PLAY ("CAL16>C<AGL4F.L16AFEL4D.L16FDCL4<A+L16A+AA+AL4G+L8FEA")
'    Qb_PLAY ("G+>DL16C<B>C<A>CEL8AEL16DC<B>CL4<A")
 
End Sub


Перевод на C++ :

Перевод на C++ для Ардуино:

173 мелодии в файлах .bas

Во вложении - проигрыватель мелодий напрямую из файлов *.bas с помощью файлового диалога Excel.
2
Вложения
Тип файла: rar Qb_PLAYER.rar (23.6 Кб, 75 просмотров)
KoGG
5271 / 1344 / 316
Регистрация: 23.12.2010
Сообщений: 2,019
Записей в блоге: 1
01.12.2012, 14:00 #28
Шахматы на VBA в Excel
12
Миниатюры
Авторские программы, библиотеки, надстройки и шаблоны  
Catstail
Модератор
23498 / 11606 / 1893
Регистрация: 12.02.2012
Сообщений: 18,945
01.12.2012, 18:24 #29
KoGG - класс!!!
0
Казанский
13824 / 5587 / 1414
Регистрация: 24.09.2011
Сообщений: 8,764
01.12.2012, 19:01 #30
Если у кого-нибудь не работает прокрутка колесиком мыши в редакторе VBA, установите эту крошечную программу.
Страница на сайте разработчика: http://www.gasanov.net/VBScroll.asp
4
Вложения
Тип файла: zip VBScroll.zip (32.7 Кб, 98 просмотров)
01.12.2012, 19:01
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.12.2012, 19:01
Привет! Вот еще темы с ответами:

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

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

Вызов окна функции из надстройки - VBA
Добрый день. Сделал надстройку типа RIBBON. В меню перечислил свои пользовательские функции. Хочу, чтобы при щелчке по пункту меню,...

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


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

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

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