Хочу автоматически отправлять отчёт из Excel в чат ВКонтакте. В отправляемом сообщении должен быть скриншот таблицы и текст: имя администратора и дата.
Скриншот отправить удаётся командой [vba]
Код
SendKeys ("^(v)")
[/vba] А вот набрать нужный текст - не получается, не знаю команды. [vba]
Код
Sub Макрос2() ' ' Макрос2 Макрос '
' Range("A1:D8").Select 'ячейки для скриншота Selection.CopyPicture Appearance:=xlScreen, Format:=xlBitmap 'копируем как растровое изображение ThisWorkbook.FollowHyperlink Address:="http://vk.com/al_im.php?sel=11691196" 'Переходим по ссылке в чат (курсор сообщения неактивен) Application.Wait (Now + TimeValue("00:00:06")) 'Ждем, когда отработает браузер Application.SendKeys "{NUMLOCK}" ' Делает NumLock стабильным (без этого почему-то отключается) ActiveWindow.Application.SendKeys ("^(t)") ' новая вкладка (чтобы курсор стал активным) Application.Wait (Now + TimeValue("00:00:01")) ActiveWindow.Application.SendKeys ("^(w)") ' закрыли ненужную вкладку (курсор стал активным) Application.Wait (Now + TimeValue("00:00:01")) ActiveWindow.Application.SendKeys ("^(v)") ' вставляем картинку с отчётом
' ЗДЕСЬ ДОЛЖЕН БЫТЬ ТЕКСТ: "Отчёт за 25.03.23" (дата берётся из ячейки G2) + Переход на новую строку + "Администратор: Кристина" (Имя берётся из ячейки G1)
Application.Wait (Now + TimeValue("00:00:02")) ActiveWindow.Application.SendKeys ("(~)") 'Нажимаем кнопку Enter для отправки сообщения Application.Wait (Now + TimeValue("00:00:01")) 'Ждем, когда отработает приложение ActiveWindow.Application.SendKeys ("%({TAB})") 'Жмем alt+tab для перехода обратно в Excel
End Sub
[/vba]
Хочу автоматически отправлять отчёт из Excel в чат ВКонтакте. В отправляемом сообщении должен быть скриншот таблицы и текст: имя администратора и дата.
Скриншот отправить удаётся командой [vba]
Код
SendKeys ("^(v)")
[/vba] А вот набрать нужный текст - не получается, не знаю команды. [vba]
Код
Sub Макрос2() ' ' Макрос2 Макрос '
' Range("A1:D8").Select 'ячейки для скриншота Selection.CopyPicture Appearance:=xlScreen, Format:=xlBitmap 'копируем как растровое изображение ThisWorkbook.FollowHyperlink Address:="http://vk.com/al_im.php?sel=11691196" 'Переходим по ссылке в чат (курсор сообщения неактивен) Application.Wait (Now + TimeValue("00:00:06")) 'Ждем, когда отработает браузер Application.SendKeys "{NUMLOCK}" ' Делает NumLock стабильным (без этого почему-то отключается) ActiveWindow.Application.SendKeys ("^(t)") ' новая вкладка (чтобы курсор стал активным) Application.Wait (Now + TimeValue("00:00:01")) ActiveWindow.Application.SendKeys ("^(w)") ' закрыли ненужную вкладку (курсор стал активным) Application.Wait (Now + TimeValue("00:00:01")) ActiveWindow.Application.SendKeys ("^(v)") ' вставляем картинку с отчётом
' ЗДЕСЬ ДОЛЖЕН БЫТЬ ТЕКСТ: "Отчёт за 25.03.23" (дата берётся из ячейки G2) + Переход на новую строку + "Администратор: Кристина" (Имя берётся из ячейки G1)
Application.Wait (Now + TimeValue("00:00:02")) ActiveWindow.Application.SendKeys ("(~)") 'Нажимаем кнопку Enter для отправки сообщения Application.Wait (Now + TimeValue("00:00:01")) 'Ждем, когда отработает приложение ActiveWindow.Application.SendKeys ("%({TAB})") 'Жмем alt+tab для перехода обратно в Excel
А вот набрать нужный текст - не получается, не знаю команды
Так всё точно так же. SendKeys'у можно скармливать не только отдельные клавиши(символы), но и целые строки символов, возможно, заранее подготовленные (типа вставка в строку даты или имени администратора). И дальше как-то так: [vba]
Код
SendKeys "Отчёт за 25.03.23" & vbCrLf & "Администратор: Кристина" или SendKeys "Отчёт за 25.03.23~ Администратор: Кристина"
[/vba] Ну, и не забывать, что он капризен к раскладке клавиатуры. Поэтому перед запуском макроса и в "источнике" (редактор VBA), и в "приемнике" (браузер) надо иметь включенной русскую раскладку, иначе русские буквы рискуют стать вопросительными знаками в "приемнике".
А вот набрать нужный текст - не получается, не знаю команды
Так всё точно так же. SendKeys'у можно скармливать не только отдельные клавиши(символы), но и целые строки символов, возможно, заранее подготовленные (типа вставка в строку даты или имени администратора). И дальше как-то так: [vba]
Код
SendKeys "Отчёт за 25.03.23" & vbCrLf & "Администратор: Кристина" или SendKeys "Отчёт за 25.03.23~ Администратор: Кристина"
[/vba] Ну, и не забывать, что он капризен к раскладке клавиатуры. Поэтому перед запуском макроса и в "источнике" (редактор VBA), и в "приемнике" (браузер) надо иметь включенной русскую раскладку, иначе русские буквы рискуют стать вопросительными знаками в "приемнике".Gustav