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

VBA

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.64
sss1973
0 / 0 / 0
Регистрация: 21.11.2009
Сообщений: 8
#1

Как обратиться к API функциям? - VBA

21.11.2009, 15:35. Просмотров 1486. Ответов 8
Метки нет (Все метки)

Привет всем!!!
Недавно начал программировать на VBA. Хотелось бы узнать есть ли в этом языке возможности для обращения к COM порту?
Похоже это можно делать с помощью API. Но как обращаться к функциям API из VBA???

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.11.2009, 15:35
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Как обратиться к API функциям? (VBA):

Как обратиться к данным .xls файла, имя которого задано в ячейке как текст - VBA
есть два файла: a.xls и b.xls Имя файла "a.xls" присутствует в определенной ячейке файла b.xls (например на первом листе в ячейке A1)....

Как обратиться к переменной по ее имени? - VBA
В runtime необходимо обратиться к переменной, хранящей объект. Имя этой переменной содержится в переменной типа String. Мне нужно...

Как обратиться к конкретной ячейке - VBA
Продолжаю задавать глупые вопросы. Уважаемые, используя метод Range обращался к ячейкам, например: name1 = Range("a1").Text name2 =...

Как обратиться к функции СРЗНАЧ в Excel? - VBA
подскажите пожалуйста как обратиться к функции срзнач в VBA Excel

Как обратиться к столбцам рабочего листа от i до j? - VBA
Спрошу тупую до примитивности вещь, но меня, похоже, уже окончательно заклинило. Пытаюсь работать с рабочим лиcтом Excel в коде vba в...

Как обратиться из Экселя к объекту Word? - VBA
мне нужно в экселе запустить макрос, который будет копировать из таблицы данные в Ворд.. еще сразу вопрос, допустим из формы экселя я...

8
Evgeniy_175469954
0 / 0 / 0
Регистрация: 19.01.2010
Сообщений: 7
19.01.2010, 09:19 #2
создаешь модуль в ней декларируешь API функцию типа:
Visual Basic
1
Public Declare Function ShowCursor Lib 'user32' Alias 'ShowCursor' (ByVal bShow As Long) As Long
И все! (эта функция для работы с курсором мыши)

А с COM портом можно работать и через ActivX элемент MScomm. Его бросаешь на лист и работаешь с его свойствами.
Пример
Visual Basic
1
2
3
4
5
6
7
8
9
MSComm1.CommPort = 1 ' номер порта
MSComm1.Settings = "19200,n,8,1" ' скорость и другие параметры
MSComm1.PortOpen = True 
MSComm1.Output = "#23" + Chr$(13) + Chr$(10) ' посылаем в порт команду (текст)
tim = Timer 
1 DoEvents 
If tim + 0.03 > Timer Then GoTo 1 'устанавливаем время ожидания ответа
receive = MSComm1.Input 'считываем данные с порта
MSComm1.PortOpen = False
0
sss1973
0 / 0 / 0
Регистрация: 21.11.2009
Сообщений: 8
20.01.2010, 16:08  [ТС] #3
А что значит 'MScomm бросаешь на лист и работаешь с его свойствами.'
Где его искать и как бросать ?
Как я понял на бросать его надо на лист какого либо
докумета MS Office ???
0
Evgeniy_175469954
0 / 0 / 0
Регистрация: 19.01.2010
Сообщений: 7
21.01.2010, 06:55 #4
Да, элемент надо помещать на лист или на форму. В Excel его можно найти по пути Вид-Панели инструментов-элементы управления -другие элементы. Так вот когда щелкаешь на кнопке 'Другие элементы', то появляется выпадающий список, в котором выбираешь Microsoft Communication Control и помещаешь на лист.
0
sss1973
0 / 0 / 0
Регистрация: 21.11.2009
Сообщений: 8
21.01.2010, 08:01  [ТС] #5
Да , Я примерно так и понял. Но ни в EXEL ни в World на своем ПК в
панели управления - другие элементы я не нашёл Microsoft Communication Control . Может его туда нужно как то добавить ??

PS. Большое спасибо за ответы!!
0
Evgeniy_175469954
0 / 0 / 0
Регистрация: 19.01.2010
Сообщений: 7
21.01.2010, 08:28 #6
Да нужно добавить. По мылу могу тебе выслать этот контрол. Его потом помещаешь в папку System, если Винды98, или в папку System32 в линейке NT/2000/XP. И делаешь 'зарегистривовать новый элемент'
Если будет вопросы, то можно связаться со мной по Асе - ее номер у меня в логине есть.
0
sss1973
0 / 0 / 0
Регистрация: 21.11.2009
Сообщений: 8
21.01.2010, 08:39  [ТС] #7
Если это не сложно то пожалуйста отправте этот контрол на sss1973@inbox.ru У меня win98 , интересно почему этот контрол отсутствует у меня в системе , это стандартая часть ОС или как?
0
sss1973
0 / 0 / 0
Регистрация: 21.11.2009
Сообщений: 8
21.01.2010, 13:32  [ТС] #8
Ваше письмо получил, но не могу скачать 2-а самых маленьких файла!
Если можно отправте пожалуйста ещё раз все файлы , но одним архивом.

Большое спасибо!
0
sss1973
0 / 0 / 0
Регистрация: 21.11.2009
Сообщений: 8
27.01.2010, 12:17  [ТС] #9
Архив получил!СПАСИБО! Но видимо этих 4-х файлов для работы этого контрола не достаточно! Может быть подскажете где Вы взяли этот контрол?
0
27.01.2010, 12:17
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.01.2010, 12:17
Привет! Вот еще темы с ответами:

Как обратиться из Ворда к ячейке Эксель - VBA
Sub bbb() Dim objExcel As Excel.Application ' Эксель MsgBox "C= " & objExcel.ActiveCell.Range("B1").Value '...

Как обратиться к метке(надпись - Label) - VBA
ставлю на лист элемент управления метку. Называется в "подпись". В не й написано метка5, например. Номер может изменятся. Так вот, как в...

Как обратиться к динамически созданной кнопке? - VBA
Доброго времени суток. Билась уже несколько дней над задачей, надеюсь на помощь в её решении. Пыталась сделать расчёт сайдинга...

ComboBox, как обратиться к списку по индексу - VBA
Здравствуйте, как будет пятая запись, пятая строка в ComboBox q=5 MsgBox Me.ComboBox1.ListIndex(q) MsgBox Me.ComboBox1.Item(q) ...


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

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

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