Я не верю, что вы можете сделать это в InputBox.Ящики ввода обычно предназначены для небольших вводов, таких как число или слово.Кроме того, нажатие enter
при вводе в InputBox отправляет его, поэтому было бы странно, если бы вы могли добавить несколько строк.
Вместо этого вы можете создать новую пользовательскую форму и добавить TextBox с полем MultiLine
, установленным на True
.Затем просто добавьте кнопку «ОК», которая закрывает форму, и ваш макрос будет считан из TextBox.
В качестве другой альтернативы, вот функция, которую я использую, чтобы получить любой текст, который в данный момент находится в буфере обмена пользователя.Таким образом, вы можете просто скопировать ваш запрос перед запуском любого макроса, в котором вы хотите его использовать.
Function copyFromClipboard() As String
Dim clipboard As MSForms.DataObject
Set clipboard = New MSForms.DataObject
clipboard.GetFromClipboard
copyFromClipboard = clipboard.getText
End Function
Требуется ссылка на Microsoft Forms 2.0 Object Library