2016-09-26 12 views
1

こんにちは、私はVBAを初めて使っていますが、一見シンプルなことをしたいと思っています。複数のセルをTextBox VBAにリンク

私は複数のセルをテキストボックスにリンクし、その値を異なる行にしたいと考えています。 Ex。 A1 =青; B1 =赤; =イエロー

C1は、私は、テキストボックスの戻り値を持つようにしたい:
レッド
ブルー
イエロー

私はこのどこかに答えを見つけることができません。

私が今持っているコードは次のとおりです。

Sub Macro2() 

' Macro2 Macro 

    ActiveSheet.Shapes.Range(Array("TextBox 2")).Select 
    Selection.Formula = "=$A$1" 

End Sub 

これは、テキストボックスにA1の値を返しますが、私はまた、B1とC1の値を必要とします。

ご協力いただければ幸いです。おかげ

更新:

エルバートビジャレアルの答えは私の問題を解決しましたが、私は最後の質問があります。

私は(A2、A3、A4)でこれをやりたい行が複数あります。これらの異なる行のデータに対してループを実行する方法はありますか?これにより

+0

あなたが同じテキストボックスまたは新しいものにB1とC1から値をしたいですか? – Marco

+1

これが '.Selection'で動作するようになったら、なぜ動作しているのかを確認してください。それから、 '.Select'を削除してください。これは' '.Activate' /' .Select'の使用を避けてください(http://stackoverflow.com/questions/10714251/how-to-avoid-using-select-in -excel-vba-macros)。 – BruceWayne

+0

私はこれを(A2、A3、A4)のためにやりたい行が複数ある。これらの異なる行のデータに対してループを実行する方法はありますか? – Stobi1

答えて

1

あなたはあなたが求めるものを行うことができます。

Sub Stobi1() 
     Dim txt As String 'Where to store the text/data 
     Dim myTxtBox As Shape 'where to store the textbox that is a Shape 

     Set myTxtBox = ActiveSheet.Shapes("myTextBox") 'take the name of your textbox 
     txt = Range("A1").Value & Chr(10) & Range("B1").Value & Chr(10) & Range("C1").Value 'this whay you can take the strings of the cells and "write it" with a new line between 

     myTxtBox.TextFrame2.TextRange.Characters.text = txt 'Put your text inside the TextBox 
End Sub 
+0

助けてくれてありがとう!これは完全に機能します。最後の1つの質問。私はこれを(A2、A3、A4)のためにしたいと思う複数の列がある。これらの異なる行のデータに対してループを実行する方法はありますか? – Stobi1

+0

確かに、明日私はあなたにいくつかの情報を求めます...ここに12:am ...しかし、あなたはA1、A2、A3、B1とC1を行きたいですか? –

+0

情報の複数の列です。正確には6列です。ですから、テキストボックスの最初の部分では、行1のすべての情報を、次に行2のすべての情報を、次に行3をそれぞれ示します。 – Stobi1

関連する問題