26

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

4

5 に答える 5

44

このコードの場合:

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

ctrl+を押しcてメモ帳を開くctrlv、次のようになります。

---------------------------
Microsoft Excel
---------------------------
Does Control+C work on a lowly, old message box?
---------------------------
OK   
---------------------------
于 2012-08-30T04:39:42.180 に答える
11

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

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

  1. 特殊効果 - fmiSpecialEffectFlat
  2. BackStyle - 透明
  3. ロック - True

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

Option Explicit

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

ここに画像の説明を入力

于 2012-08-30T06:41:36.400 に答える
4

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

ここに画像の説明を入力

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."
于 2012-08-30T06:40:02.893 に答える
4

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

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

于 2012-08-30T04:53:45.987 に答える