1

私は Visual Basic の初心者で、簡単なことに取り組みたいと思っています。

私は持っていbuttonますTextBox

  • ボタンをクリックすると、テキストボックスに文字列を表示したいのですが、その文字列に特定の文字が特定の色で表示されます。

ボタン:

    Private Sub CommandButton1_Click()
    TextBox1.Text = "Hi my name is Koki"
    End Sub

テキストボックス:

    Private Sub TextBox1_Change()
    End Sub

出力:

ここに画像の説明を入力

<span></span>注: Htmlのような静的な解決策があっても役に立ちます

4

1 に答える 1

1

VBA を扱うときは、範囲を考慮してから、指定された範囲のプロパティを考慮する必要があります。ここに、あなたが望むことをするサンプルコードがあります:

Private Sub CommandButton1_Click()

    Set Object = ActiveDocument.Shapes.AddTextbox(Orientation:=msoTextOrientationHorizontal, Left:=10, Top:=10, Width:=80, Height:=80)

    With Object.TextFrame.TextRange
        .Text = "Hi my name is Koki"
        With .Characters(2).Font
            .ColorIndex = wdTurquoise  'http://msdn.microsoft.com/en-us/library/office/aa195611(v=office.11).aspx
        End With
        With .Characters(12).Font
            .ColorIndex = wdTurquoise
        End With
        With .Characters(18).Font
            .ColorIndex = wdTurquoise
        End With
    End With

End Sub

ご覧のとおり、最初にテキストボックスを追加しています。正しい textBox を使用していることを確認するためにこれを行っています (ActiveX テキストボックスを追加すると、動作が異なります)。

- - - - - アップデート

提案された方法論に依存するには、Document Open イベントを使用して任意の図形を削除し、必要な図形を書き込む必要がある場合があります。例えば:

Private Sub Document_Open()

    For i = ActiveDocument.Shapes.Count To 1 Step -1
        ActiveDocument.Shapes(i).Delete
    Next i

    Set Object = ActiveDocument.Shapes.AddTextbox(Orientation:=msoTextOrientationHorizontal, Left:=10, Top:=10, Width:=80, Height:=80)

End Sub

このコードは、ドキュメントが開かれたときに呼び出され、作成したすべての図形 (commandButton などの ActiveX オブジェクトではない) を削除し、テキスト ボックスを追加します。Object変数をグローバルに宣言して、コード内のどこからでもアクセスできます (CommandButton1_Click()たとえば、 )。

これは、必要なものを取得するための回避策の例であることに注意してください。指定された形状を削除する必要はありません。このコードを使用して、ドキュメントの開始時に何をすべきかを確認できます。「必要な名前」という形状がある場合は、そこに置いて実行しないでください。何でも、それをグローバルObject変数に設定するだけです。

Private Sub Document_Open()

    For i = ActiveDocument.Shapes.Count To 1 Step -1
        If(ActiveDocument.Shapes(i).Name = "the name I want") Then
          Set Object = ActiveDocument.Shapes(i)
          Exit Sub
        End If
    Next i

    Set Object = ActiveDocument.Shapes.AddTextbox(Orientation:=msoTextOrientationHorizontal, Left:=10, Top:=10, Width:=80, Height:=80)

End Sub
于 2013-07-14T14:47:44.813 に答える