Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Создание гиперссылки на другое приложение с доп.параметрами - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Создание гиперссылки на другое приложение с доп.параметрами
Glebzilla Дата: Понедельник, 13.04.2020, 16:22 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация: 0 ±
Замечаний: 0% ±

Excel 2019
Добрый день!
Подскажите, пожалуйста, как оформлять гиперссылки на внешние приложения с параметрами запуска, а точнее гиперссылку на письмо электронной почты в программе Microsoft Outlook.
В результате работы
я получаю ссылку типа "C:\Program Files (x86)\Microsoft Office\Office16\Outlook.exe" outlook:000000002A3DD05CE183894A9C5DE0DA789E6CF707008B5039B834A2F9479CC10647520B190000000059A61B0000EC885BF319494C4888A389D083240C9600007569A8E50000 , которая отлично работает в командной строке. Однако, при вставке в Excel мне сообщают: "Неверный адрес сайта. Проверьте его и повторите попытку"; притом чистая ссылка "C:\Program Files (x86)\Microsoft Office\Office16\Outlook.exe" спокойно открывается.


Сообщение отредактировал Glebzilla - Понедельник, 13.04.2020, 17:34
 
Ответить
СообщениеДобрый день!
Подскажите, пожалуйста, как оформлять гиперссылки на внешние приложения с параметрами запуска, а точнее гиперссылку на письмо электронной почты в программе Microsoft Outlook.
В результате работы
я получаю ссылку типа "C:\Program Files (x86)\Microsoft Office\Office16\Outlook.exe" outlook:000000002A3DD05CE183894A9C5DE0DA789E6CF707008B5039B834A2F9479CC10647520B190000000059A61B0000EC885BF319494C4888A389D083240C9600007569A8E50000 , которая отлично работает в командной строке. Однако, при вставке в Excel мне сообщают: "Неверный адрес сайта. Проверьте его и повторите попытку"; притом чистая ссылка "C:\Program Files (x86)\Microsoft Office\Office16\Outlook.exe" спокойно открывается.

Автор - Glebzilla
Дата добавления - 13.04.2020 в 16:22
Glebzilla Дата: Вторник, 14.04.2020, 12:23 | Сообщение № 2
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация: 0 ±
Замечаний: 0% ±

Excel 2019
Ок, частично решено.
Я создал бат-файл с нужной ссылкой внутри. А в экселе гиперссылка на батник.
Подскажите, пожалуйста, как изменить макрос так, чтобы батник создавался автоматически и имел в названии Дата.Отправитель.bat ?
 
Ответить
СообщениеОк, частично решено.
Я создал бат-файл с нужной ссылкой внутри. А в экселе гиперссылка на батник.
Подскажите, пожалуйста, как изменить макрос так, чтобы батник создавался автоматически и имел в названии Дата.Отправитель.bat ?

Автор - Glebzilla
Дата добавления - 14.04.2020 в 12:23
Glebzilla Дата: Вторник, 14.04.2020, 17:49 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация: 0 ±
Замечаний: 0% ±

Excel 2019
Вот работающий код
Макрос сделал внутри Microsoft Outlook
Внутри VBA надо зайти в Tools -> References -> Browse , в папке Windows/System32 найти FM20.DLL
При выполнении макроса в заданной папке автоматически создаётся *.bat , ссылка на который копируется в буфер обмена, затем эту ссылку мы вставляем в Эксель для ведения собственной статистики.
Сохранение только ссылки на письмо позволяет нам условно сэкономить место на жёстком диске.
При отправке полученной ссылки другому пользователю она становится бесполезна, потому как привязана к конкретному почтовому ящику в конкретной почтовой программе на конкретном компьютере.
[vba]
Код
Sub new1()
   Dim objMail As Outlook.MailItem
   Dim doClipboard As New DataObject

   'One and ONLY one message muse be selected
   If Application.ActiveExplorer.Selection.Count <> 1 Then
       MsgBox ("One and ONLY one message must be selected.")
       Exit Sub
   End If

   Set objMail = Application.ActiveExplorer.Selection.Item(1)
   
   Tme = objMail.ReceivedTime
   timeLength = Len(Tme)

   If timeLength = 21 Then MsgTime = Replace(Right(objMail.ReceivedTime, 18), ":", ".") Else MsgTime = Replace(Right(objMail.ReceivedTime, 19), ":", ".")
   
   YY = Right(Left(MsgTime, 10), 4)
   MM = "." + Right(Left(MsgTime, 5), 2)
   DD = "." + Left(MsgTime, 2)
   TT = Right(MsgTime, 8)
   TxtName = objMail.SenderName() + "-" + YY + MM + DD + "-" + TT
   
Open "C:\Users\SuperUser\Documents\" & TxtName & ".bat" For Output As #1
Print #1, """C:\Program Files (x86)\Microsoft Office\Office16\Outlook.exe"" outlook:" + objMail.EntryID
Close #1
   doClipboard.SetText "=ГИПЕРССЫЛКА(""C:\Users\SuperUser\Documents\" + TxtName + ".bat"")"
   doClipboard.PutInClipboard

End Sub
[/vba]
Потом в Эксель просто нажимаем вставить, ссылка готова.


Сообщение отредактировал Glebzilla - Среда, 15.04.2020, 12:08
 
Ответить
СообщениеВот работающий код
Макрос сделал внутри Microsoft Outlook
Внутри VBA надо зайти в Tools -> References -> Browse , в папке Windows/System32 найти FM20.DLL
При выполнении макроса в заданной папке автоматически создаётся *.bat , ссылка на который копируется в буфер обмена, затем эту ссылку мы вставляем в Эксель для ведения собственной статистики.
Сохранение только ссылки на письмо позволяет нам условно сэкономить место на жёстком диске.
При отправке полученной ссылки другому пользователю она становится бесполезна, потому как привязана к конкретному почтовому ящику в конкретной почтовой программе на конкретном компьютере.
[vba]
Код
Sub new1()
   Dim objMail As Outlook.MailItem
   Dim doClipboard As New DataObject

   'One and ONLY one message muse be selected
   If Application.ActiveExplorer.Selection.Count <> 1 Then
       MsgBox ("One and ONLY one message must be selected.")
       Exit Sub
   End If

   Set objMail = Application.ActiveExplorer.Selection.Item(1)
   
   Tme = objMail.ReceivedTime
   timeLength = Len(Tme)

   If timeLength = 21 Then MsgTime = Replace(Right(objMail.ReceivedTime, 18), ":", ".") Else MsgTime = Replace(Right(objMail.ReceivedTime, 19), ":", ".")
   
   YY = Right(Left(MsgTime, 10), 4)
   MM = "." + Right(Left(MsgTime, 5), 2)
   DD = "." + Left(MsgTime, 2)
   TT = Right(MsgTime, 8)
   TxtName = objMail.SenderName() + "-" + YY + MM + DD + "-" + TT
   
Open "C:\Users\SuperUser\Documents\" & TxtName & ".bat" For Output As #1
Print #1, """C:\Program Files (x86)\Microsoft Office\Office16\Outlook.exe"" outlook:" + objMail.EntryID
Close #1
   doClipboard.SetText "=ГИПЕРССЫЛКА(""C:\Users\SuperUser\Documents\" + TxtName + ".bat"")"
   doClipboard.PutInClipboard

End Sub
[/vba]
Потом в Эксель просто нажимаем вставить, ссылка готова.

Автор - Glebzilla
Дата добавления - 14.04.2020 в 17:49
Glebzilla Дата: Среда, 15.04.2020, 11:44 | Сообщение № 4
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация: 0 ±
Замечаний: 0% ±

Excel 2019
Для сохранения непосредственно сообщения в формате .msg
Имя файла я задаю из Имени отправителя + Дата + Время, потому что темы сообщений слишком длинные, и когда в названии файлов возникает тема, windows не может их обработать, да и поиск так удобнее.
Моё получение даты из свойств письма довольно кривое, можете исправлять.
Письма сохраняются в сетевую папку , доступ к которой ограничен доменными политиками, то есть у нас только пользователи, состоящие в определенной группе, могут с ними работать.
Доступные свойства, кроме даты и имени отправителя, ищите в справке Майкрософта по MailItem .
[vba]
Код
Sub new1()
Dim objMail As Outlook.MailItem
Dim doClipboard As New DataObject

'One and ONLY one message muse be selected
If Application.ActiveExplorer.Selection.Count <> 1 Then
    MsgBox ("Выберите только одно сообщение.")
    Exit Sub
End If

Set objMail = Application.ActiveExplorer.Selection.Item(1)

Tme = objMail.ReceivedTime
timeLength = Len(Tme)

If timeLength = 21 Then MsgTime = Replace(Right(objMail.ReceivedTime, 18), ":", ".") Else MsgTime = Replace(Right(objMail.ReceivedTime, 19), ":", ".")

YY = Right(Left(MsgTime, 10), 4)
MM = "." + Right(Left(MsgTime, 5), 2)
DD = "." + Left(MsgTime, 2)
TT = Right(MsgTime, 8)
TxtName = objMail.SenderName() + "-" + YY + MM + DD + "-" + TT

objMail.SaveAs "\\zkf-z14\common\Согласования\Иванов\" & TxtName & ".msg"
doClipboard.SetText "=ГИПЕРССЫЛКА(""\\zkf-z14\common\Согласования\Иванов\" + TxtName + ".msg"")"
doClipboard.PutInClipboard

End Sub
[/vba]
Готовую ссылку вставляем в Эксель.


Сообщение отредактировал Glebzilla - Среда, 15.04.2020, 11:49
 
Ответить
СообщениеДля сохранения непосредственно сообщения в формате .msg
Имя файла я задаю из Имени отправителя + Дата + Время, потому что темы сообщений слишком длинные, и когда в названии файлов возникает тема, windows не может их обработать, да и поиск так удобнее.
Моё получение даты из свойств письма довольно кривое, можете исправлять.
Письма сохраняются в сетевую папку , доступ к которой ограничен доменными политиками, то есть у нас только пользователи, состоящие в определенной группе, могут с ними работать.
Доступные свойства, кроме даты и имени отправителя, ищите в справке Майкрософта по MailItem .
[vba]
Код
Sub new1()
Dim objMail As Outlook.MailItem
Dim doClipboard As New DataObject

'One and ONLY one message muse be selected
If Application.ActiveExplorer.Selection.Count <> 1 Then
    MsgBox ("Выберите только одно сообщение.")
    Exit Sub
End If

Set objMail = Application.ActiveExplorer.Selection.Item(1)

Tme = objMail.ReceivedTime
timeLength = Len(Tme)

If timeLength = 21 Then MsgTime = Replace(Right(objMail.ReceivedTime, 18), ":", ".") Else MsgTime = Replace(Right(objMail.ReceivedTime, 19), ":", ".")

YY = Right(Left(MsgTime, 10), 4)
MM = "." + Right(Left(MsgTime, 5), 2)
DD = "." + Left(MsgTime, 2)
TT = Right(MsgTime, 8)
TxtName = objMail.SenderName() + "-" + YY + MM + DD + "-" + TT

objMail.SaveAs "\\zkf-z14\common\Согласования\Иванов\" & TxtName & ".msg"
doClipboard.SetText "=ГИПЕРССЫЛКА(""\\zkf-z14\common\Согласования\Иванов\" + TxtName + ".msg"")"
doClipboard.PutInClipboard

End Sub
[/vba]
Готовую ссылку вставляем в Эксель.

Автор - Glebzilla
Дата добавления - 15.04.2020 в 11:44
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!