Использование мессенджеров (Viber, Telegram, WhatsApp) заметно упростило и разнообразило общение людей, позволив все время находится “на связи”, и не быть привязанными к компьютеру. В то же время пользователи мессенджеров получили куда больший функционал чем обычные SMS-сообщения, использование которых у операторов мобильной связи стала куда большей роскошью, нежели интернет трафик.
А что, если приспособить отправку сообщений в мессенджер из VBA кода, привязав к окончанию работы макроса, получению Email или настроить на периодическую отправку сообщений со статусом каких-либо показателей (% выполнения плана продаж, список незакрытых сделок и т.д.)? Не найдя подходящего решения в интернет для VBA, я решил написать свое собственное с использованием Telegram бота, о чем и хочу поделиться в данном посте. Обмолвлюсь сразу же – описанный ниже функционал НЕ ПОЗВОЛЯЕТ вести интерактивный диалог с ботом, а лишь отправлять сообщения пользователю в одностороннем порядке.
И так, приступим. Что первое необходимо сделать чтобы начать тестировать функционал отправки сообщений в Telegram через VBA? Предполагаю, что сам мессенджер у Вас уже установлен и поэтому данный этап пропустим )). Опишем следующую этапность действий:
Сбор данных из телеграм в таблицу
- Создадим Telegram бота
- Напишем VBA-класс для отправки сообщений ботом
- Используем класс в нашем коде
- Создание Telegram бота
b) Отправьте боту команду /newbot, которая отвечает за создание новых ботов
c) Задайте имя своего нового бота согласно инструкциям и подсказкам
f) Получите ID чата (вашей переписки с ботом). Для этого в окне браузера введите следующую команду:
В нашем тестовом примере токен был 781500114:AAECOTrby1zuQ0afGozyRlvua5CMGezT9IA Таким образом, получим следующую строку:
При переходе по указанному адресу, браузер выдаст ответ в котором содержится необходимая информация – id чата
g) Сохраните данные о токене и chat ID для дальнейшего использования в скрипте
- Написание класса для отправки сообщений ботом
Задумка написания класса для отправки ботом сообщений была следующая: указываем имя бота, указываем имя получателя, текст сообщения и отправляем месседж. Для этого имя бота и получателя зададим как свойства класса, для того, чтобы можно было обращаться к ним не по токену и id, а по именам.
Private ms_current_chatbot As String Private ms_current_user As String Public Property Let ChatBot(ByVal Value As String): ms_current_chatbot = Value: End Property Public Property Get ChatBot() As String: ChatBot = ms_current_chatbot: End Property Public Property Let UserName(ByVal Value As String): ms_current_user = Value: End Property Public Property Get UserName() As String: ChatBot = ms_current_user: End Property
Таким образом мы определили два свойства: ChatBot, UserName с помощью которых мы будем задавать нашему классу два входящих параметра: имя нашего бота и имя получателя. Сами значения токена и id будем получать на основе заданных имен отдельными функциями внутри класса (они не будут видны извне):
Private Function getChatToken() As String ‘******************************** ‘Purpose: Function retrieves token for bot ‘Result: getChatToken gets value of token ‘******************************** If Len(ms_current_chatbot) > 0 Then Select Case ms_current_chatbot ‘—- other cases can be added below here —- Case «OfficeScripts_test»: getChatToken = «781500114:AAECOTrby1zuQ0afGozyRlvua5CMGezT9IA» Case Else: getChatToken = vbNullString End Select Else: getChatToken = vbNullString End If End Function
Private Function getChatID() As String ‘******************************** ‘Purpose: Function retrieves user chat id ‘Result: getChatID gets value of chat id ‘******************************** If Len(ms_current_user) > 0 Then Select Case ms_current_user ‘—- other cases can be added below here —- Case «Aleksandr»: getChatID = «xxxxxxxxx» ‘Substitute xxxxxxxxx with your real ID Case Else: getChatID = vbNullString End Select Else: getChatID = vbNullString End If End Function
Осталось описать главную часть нашего класса – функцию отправки сообщения. Для того чтобы отправить сообщение, необходимо сформировать строку определенного формата и отправить ее на сервер Telegram. Часть строки будет всегда неизменной, и поэтому ее логично задать константой, а другие части зададим переменными, из которых и будем формировать строку.
Постоянную часть определим константой TELEGRAM_URL:
Private Const TELEGRAM_URL As String = “https://api.telegram.org/bot»
А прочие части будем строки (URL) формировать на лету следующим образом:
‘//Getting URL string URL = TELEGRAM_URL «/sendMessage?» chat_id=» » text=» 0 And Len(ms_current_user) > 0 Then ‘//Converting chars to url format BodyText = URLEncode(BodyText) ‘//Getting URL string URL = TELEGRAM_URL «/sendMessage?» chat_id=» » text=» POST», URL, True mobj_httpRequest.Send On Error Resume Next iCount = 0 Do Until mobj_httpRequest.Status = 200 And mobj_httpRequest.ReadyState = 4 iCount = iCount + 1 If iCount = MAX_TRY_COUNT Then Exit Do End If Loop On Error GoTo 0 If iCount < MAX_TRY_COUNT Then sendMessage = True Else: sendMessage = False End If Else ‘//Chat not specified If Not SILENT_MODE Then MsgBox «Chat or User haven’t been set. Please specify chat , vbExclamation + vbOKOnly End If sendMessage = False End If Else ‘//MSXML object is not initialized If Not SILENT_MODE Then MsgBox «Http connection was lost», vbExclamation + vbOKOnly End If sendMessage = False End If End Function
В случае, если при отправке сообщения произошел сбой в интернет соединении, недоступность сервера и т.д. и наш запрос не был доставлен, в функции sendMessage имеется цикл, который будет повторяться несколько раз (до установленного Вами значения количества попыток), пока не отправит сообщение. Данные строки выделены подсветкой выше.
- Использование класса
В самом начале, когда нами создавался класс для отправки сообщений Telegram, ему было присвоено имя по умолчанию, которое лучше изменить на что-то более значащее и понятное. Я присвоил классу имя clTelegramNotifier. Использовать его в коде довольно просто, если изначально был четко определен желаемый алгоритм работы, о чем было написано в начале второго раздела. Мы хотели задать имя получателя, имя бота, указать какой текст мы хотим отправить и получить наше сообщение на телефоне, что мы в итоге и сделали.
Sub test_telegram() Dim Telegram As clTelegramNotifier Dim text As String Set Telegram = New clTelegramNotifier If Telegram.Initialized Then Telegram.ChatBot = «OfficeScripts_test» Telegram.UserName = «Aleksandr» text = [b2].Value2 If Telegram.sendMessage(text) Then Debug.Print «OK» End If End If Set Telegram = Nothing End Sub
Данную процедуру в рамках тестирования я поместил на кнопку на листе и передавал ей как параметр текст из ячейки [B2]. Результат видно на рисунке ниже. А сам класс можно скачать в конце данного поста.
Источник: officescripts.net
Как загрузить данные из Excel в ChatGPT?
Чаты — один из самых популярных способов для обмена информацией и координации работы сотрудников. Но мало кто знает, что для этих целей подходит и ChatGPT. С помощью нейросети можно не только отправлять текстовые сообщения, но обрабатывать большое количество бизнес-данных, в том числе из таблиц Эксель. В этой статье мы расскажем, как загрузить данные Excel в ChatGPT и где будет именно полезно использование этой функции искусственного интеллекта.
Что представляет собой чат ГПТ?
Это нейросеть, с помощью которой можно обмениваться сообщениями, файлами, ссылками, а также искать информацию в интернете, обрабатывать большие объемы данных с целью планирования и получения точных результатов. ChatGPT идеален для выполнения бизнес-процессов. Он позволяет мгновенно решать поставленные задачи, согласовывать действия и подводить итоги.
Как ChatGPT упрощает использование Excel?
Если требуется отправить коллеге или получить от него таблицу, отследить результаты или организовать работу лучшим образом, чат ГПТ может упростить процесс. Как помогает искусственный интеллект?
- Дает советы по функциям таблицы. Например, как искать данные, создать график.
- Решает возникшие проблемы. Файл не открывается или программа выдает ошибку? Чат ГПТ найдет информацию!
- Предоставляет ответы на вопросы. Так, вы сможете получить информацию о том, как в один клик удалить все формулы из ячеек или заменить похожую информацию на другую.
- Помогает повысить эффективность. Нейросеть даст возможность автоматизировать задачи и быстро создать макрос.
В чат можно загрузить целую таблицу, отдельно ее столбцы или строки. А можно внедрить нейросеть прямо в программу и использовать его в режиме онлайн, пока заполняете документ данными. Как это сделать — расскажем далее.
Как загрузить таблицу Excel в чат ГПТ?
Самый простой способ обмена данными между нейросетью и программой. Шаг 1. Скопируйте таблицу. Выделите все заполненные ячейки, кликните на правую кнопку мыши и в появившемся списке выберите «Копировать». Или используйте горячие клавиши «Ctrl+C». Шаг 2. Откройте ChatGPT. Если у вас есть доступ к официальной версии, сделайте это на сайте openai.com. Если вы пользуетесь аналогами, выберите удобный вариант (бот в Telegram, Discord или иное), куда будете загружать информацию из Эксель. Шаг 3. Вставьте таблицу. Кликните на правую кнопку мыши, нажмите «Вставить». Или используйте горячие клавиши «Ctrl+V». Готово! Все данные из ячеек добавлены в чат ГПТ. Форматирование может отличаться от Эксель, но нейросеть распознает информацию и выполнит поставленную вами задачу.
Как загрузить ChatGPT в Excel?
В некоторых случаях удобнее работать с искусственным интеллектом прямо в таблицах. Для них можно установить бот в программу. Чтобы это сделать, нужно получить токен API, который генерируется в личном кабинете на openai.com. Это ключ, с его помощью вы будете отправлять запросы в Чат ГПТ и получать от нейросети нужную информацию. Как это сделать? Шаг 1. Зарегистрируйтесь на официальном сайте разработчика. О том, как правильно и быстро оплатить программу, мы писали в статье. Шаг 2. После регистрации сайт отправит вас на стартовую страницу, где нужно кликнуть на иконку своего личного кабинета и выбрать «View API keys». Вы увидите список токенов. Также возможно создание нового. Нажмите на кнопку «Create new secret key». Получите новый токен и сразу же сохраните его в надежном месте (запишите, сфотографируйте, скопируйте), так как сайт показывает его только один раз. Шаг 3. Загрузите на устройство !SEMTools — программу для эффективной работы с Excel. Скачать ее можно на официальном сайте semtools.guru. Шаг 4. Используйте горячие клавиши «Ctrl+C», чтобы скопировать ключ. Запустите программу Эксель и вставьте код в окошко, появившееся в верхней части экрана над таблицей («ChatGPT»—«Ввести и сохранить токен»). Кликните «ОК» и продолжайте работу с данными с помощью нейросети.
Подведем итоги
Итак, мы выяснили, что вставить таблицы в ChatGPT можно двумя способами. Первый вариант наиболее удобен для тех, кто хочет иногда проверять результаты, генерировать итоги работы в отдельных файлах. Второй подойдет тем, кому помощь искусственного интеллекта требуется на постоянной основе, и необходимо проверять и сравнивать данные из определенных столбцов, строк, ячеек, мгновенно получать информацию по ним из интернета. Например, когда у вас есть список стран и нужно вписать в таблицу самые крупные города по каждой, достаточно отправить запрос нейросети через установленный !SEMTools в Excel командой «найти крупнейшие города для указанных стран». МашаGPT — аналог оригинального чата без ограничений в регистрации и оплате — работает по тому же принципу. С его помощью вы сможете вставлять таблицы для проверки данных и составления отчетов. И это всего от 290 рублей в месяц! Не придется покупать иностранные сим-карту и банковскую карту. Сервис работает с российскими платежными системами и принимает оплату через СБП. Кроме того, по сравнению с чатом от OpenAI у МашаGPT количество слов для запросов в два раза больше (50 000 против 25 000). Есть библиотека команд и возможность создавать собственные. А если вы не уверены, какой именно тариф вам подойдет, можно воспользоваться бесплатным пробным периодом и протестировать интересующий.
Как написать курсовую или реферат с помощью ChatGPT?
Нейросеть позволяет создавать тексты не только для бизнеса, но и учебы. С помощью ChatGPT можно написать курсовую, реферат, диплом и другие работы. Он будет полезен студентам, у которых нет опыта или мало времени для самостоятельного поиска информации. Как именно этот инструмент может помочь в обучении?
Почему не работает ChatGPT?
ChatGPT — мощный инструмент для решения рабочих и личных задач. Однако не всегда сервис доступен для пользователей. И проблема может быть не только в том, что на нейросеть наложены ограничения. ChatGPT не работает в России и некоторых других регионах. Даже если вы подключились через VPN, установили все необходимые расширения и оплатили подписку, сайт все равно может не работать. Что делать в этом случае?
Источник: mashagpt.ru