Леонард задается вопросом, есть ли способ при отображении окна сообщения в макросе заставить окно появляться в определенном месте на экране.

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

Вот пример:

sName = InputBox(Prompt:="Enter your name", XPos:=2880, YPos:=1440)

Обратите внимание, что вы можете указать как положение X, так и положение Y для верхнего левого угла поля. Значения, присвоенные этим параметрам, измеряются от верхнего левого угла экрана и указываются в твипах. (В дюйме 1440 твипов.)

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

_Примечание: _

Если вы хотите узнать, как использовать макросы, описанные на этой странице (или на любой другой странице на сайтах ExcelTips), я подготовил специальную страницу, содержащую полезную информацию.

link: / excelribbon-ExcelTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера].

ExcelTips — ваш источник экономичного обучения Microsoft Excel.

Этот совет (10030) применим к Microsoft Excel 2007, 2010, 2013, 2016, 2019 и Excel в Office 365. Вы можете найти версию этого совета для старого интерфейса меню Excel здесь:

link: / excel-Specifying_Location_for_a_Message_Box [Указание местоположения для окна сообщения].