web-dev-qa-db-ja.com

VBAメッセージボックスで選択可能なテキスト

VBAでmsgboxを作成すると、ユーザーはテキストをまったく操作できません。私の場合、ユーザーがテキストを強調表示してコピーできるようにしたいと考えています。これを行うためのより良い方法は、テキストをクリップボードにコピーするボタンを追加することかもしれません。助言がありますか?

22
nobillygreen

このコードの場合:

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   
---------------------------
40
ray

「選択可能」なテキストが必要な場合は、MsgBoxを使用しないでください。 カスタムフォームを使用 で、ラベルの代わりにテキストボックスを使用します。しかしながら...

デザインモードでテキストボックスのこれらのプロパティを変更します。

  1. SpecialEffect-fmiSpecialEffectFlat
  2. バックスタイル-透明
  3. ロック-True

そして、このコードを使用します

Option Explicit

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

enter image description here

10
Siddharth Rout

メッセージボックスの代わりに入力ボックスを使用できます

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

inputbox copy text

enter image description here

8
najeem

ユーザーが通常メッセージ全体をコピーする場合は、VBAを使用してクリップボードのテキストを設定できます。

または、ユーザーが入力された値からコピーできるため、msgboxの代わりに入力ボックスを使用します。

4
Tim Williams

ユーザーフォームを使用して、独自のカスタムメッセージボックスを作成できます。これは、初歩的な概念実証です。テキストボックスが1つあるユーザーフォームです(テキストボックスからテキストを選択してコピーできます)。

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."