Подтвердить что ты не робот

Выбираемый текст в окне сообщений VBA

Когда я создаю msgbox в VBA, пользователь вообще не может взаимодействовать с текстом. В моем случае я хочу, чтобы пользователь мог выделить и скопировать текст. Я думаю, что лучший способ сделать это может заключаться в том, чтобы добавить кнопку, которая копирует текст в буфер обмена. Любые предложения?

4b9b3361

Ответ 1

Для этого кода:

msgbox "Does Control+C work on a lowly, old message box?"

вы можете нажать ctrl + c, открыть блокнот, ctrl + v, и вы получите следующее:

---------------------------
Microsoft Excel
---------------------------
Does Control+C work on a lowly, old message box?
---------------------------
OK   
---------------------------

Ответ 2

Если вы хотите, чтобы текст был "выбираемым", не используйте MsgBox. Используйте пользовательскую форму, а вместо ярлыка используйте текстовое поле. Однако...

Измените эти свойства текстового поля в режиме разработки.

  • SpecialEffect - fmiSpecialEffectFlat
  • BackStyle - Tranparent
  • Заблокировано - True

И затем используйте этот код

Option Explicit

Private Sub UserForm_Initialize()
    Me.Caption = "Message Box"
    TextBox1.Text = "Hello World!"
End Sub

enter image description here

Ответ 3

Вы можете использовать VBA для установки текста буфера обмена, если пользователь обычно копирует все сообщение.

Или используйте поле ввода вместо msgbox, так как пользователь может скопировать из заполненного значения.

Ответ 4

Вы можете создать собственное окно сообщений с помощью UserForm. Здесь рудиментарное доказательство концепции: пользовательская форма с одним текстовым полем (из которого вы можете выбрать и скопировать текст).

enter image description here

Sub MyMsg(msg As String)
    With MsgUserForm ' this is the name I gave to the userform
        .TextBox1.Text = msg
        .Show
    End With
End Sub

Использование:

MyMsg "General failure reading hard drive."

Ответ 5

Вы можете использовать поле ввода вместо окна сообщения

inputbox "Copy the below text", "Copy Text", "Text value"

текст с текстом ввода

введите описание изображения здесь