Получение сообщения электронной почты, всплывающего на одном мониторе, с окном сообщения на другом - PullRequest
0 голосов
/ 09 мая 2018

Итак, я создаю электронную почту. Соскобы и т. Д. И т. Д.

Он пытается определить, есть ли имя данного поставщика в электронном письме. Если он найдет это, отлично! Он знает, откуда он пришел.

Однако иногда не удается найти имя. В данный момент я показываю нужное электронное письмо и открываю окно ввода с вопросом «От кого это электронное письмо?»

К сожалению, электронная почта и поле ввода, как правило, всплывают на одном мониторе, поэтому окно сообщения в конечном итоге «перезаписывает» электронную почту, фактически скрывая ее. Из-за этого конечному пользователю довольно сложно понять, о чем идет речь!

Есть ли простой способ сказать в VBA: «Пожалуйста, отображайте на мониторе, который Excel не использует», или мне просто добавить в инструкции «Эй, у вас есть Outlook и Excel на разных мониторах для простоты использования»?

Ответы [ 2 ]

0 голосов
/ 09 мая 2018

Вы должны попытаться использовать UserForm для отображения вашего сообщения - вместо MsgBox

UserForm имеет свойство с именем StartUpPosition. По умолчанию это свойство имеет значение 1 (CenterOwner), что означает, что оно должно отображаться в центре окна Excel.

Но , если у вас система с двумя мониторами. UserForm не центрируется в окне Excel - В моей системе UserForm всегда отображается с левой стороны вторичного монитора, даже если Excel развернут на основном мониторе.

Попробуйте, и даже если он будет находиться в центре над окном Excel, вы можете легко изменить его местоположение.

Приведенный ниже код заставит Excel UserForm центрироваться в окне Excel - измените его в соответствии со своими потребностями (но попробуйте сначала запустить UserForm без каких-либо изменений - он может просто всплыть на дополнительном экране точно так же, как вам нужно).

With UserForm1
  .StartUpPosition = 0
  .Left = Application.Left + (0.5 * Application.Width) - (0.5 * .Width)
  .Top = Application.Top + (0.5 * Application.Height) - (0.5 * .Height)
  .Show
End With
0 голосов
/ 09 мая 2018

A MsgBox не позволяет указать местоположение. Вместо этого Excel отображает окно сообщения с центром на экране. Если вам нужна возможность позиционировать коробку, то самое простое решение - положиться на InputBox. В отличие от MsgBox, InputBox включает параметры параметров для указания местоположения. Вот пример:

vendorName = InputBox(Prompt:="Who is this e-mail from?", XPos:=2880, YPos:=1440)

Внешний вид не будет таким же, как у InputBox, но вы сможете найти свой ящик в (например) левом / правом углу экрана.

Вы можете попросить своих пользователей ввести имя Продавца, чтобы вы знали, было ли оно найдено или нет.

...