Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


3411 / 13644 ツリー ←次へ | 前へ→

【62405】シートのセル値をユーザーフォームのテキストボックスに取り込み、表示した... T-K 09/7/20(月) 10:25 質問[未読]
【62406】Re:シートのセル値をユーザーフォームのテ... りん 09/7/20(月) 11:48 回答[未読]
【62410】Re:シートのセル値をユーザーフォームのテ... T-K 09/7/20(月) 17:47 お礼[未読]

【62405】シートのセル値をユーザーフォームのテキ...
質問  T-K  - 09/7/20(月) 10:25 -

引用なし
パスワード
   ユーザーフォームを作成したまでがいいのですが、
テキストボックスをダブルクリックすると、以下が出てきました。

Private Sub TextBox1_Change()
     
End Sub

特定シートのセルの値をユーザーフォームのテキストボックスに取り込み、
表示したいのですが、上記のプロシージャを作成する必要があるのでしょうか。

参考書を見ると、例えば以下のようになってます。
Sub smpControlSource()
  UserForm1.TextBox1.ControlSource = "B2"
  UserForm1.Show
End Sub

この参考で表示できたので特定セルの場合、例えば以下のようにしたら、
エラーがでてきました。
Sub smpControlSource()
  Dim TextBox1 AS String
  UserForm1.TextBox1.ControlSource = Worksheets("Sheet1").Range("B2:C2")
  UserForm1.Show
End Sub

何が悪いのかさっぱりです。
どうかご教示頂けますでしょうか。

【62406】Re:シートのセル値をユーザーフォームの...
回答  りん E-MAIL  - 09/7/20(月) 11:48 -

引用なし
パスワード
   T-K さん、こんにちわ。
>参考書を見ると、例えば以下のようになってます。
>Sub smpControlSource()
>  UserForm1.TextBox1.ControlSource = "B2"
>  UserForm1.Show
>End Sub
>
>この参考で表示できたので特定セルの場合、例えば以下のようにしたら、
>エラーがでてきました。
>Sub smpControlSource()
>  Dim TextBox1 AS String
>  UserForm1.TextBox1.ControlSource = Worksheets("Sheet1").Range("B2:C2")
>  UserForm1.Show
>End Sub

ControlSourceのヘルプより、
 object.ControlSource [= String]

ということで、リンクさせるセルを示す文字列を指定します(参考書の"B2")。
そして、リンク先のセルは単独でないとエラー(テキストボックスの値なので1つ)になり、B2:C2が結合セルだとしたらB2だけ指定すればよいので、

UserForm1.TextBox1.ControlSource = Worksheets("Sheet1").Range("B2").Address(external:=True)

とすればお望みの結果が得られると思います。

B2とC2がそれぞれ違う文字が入っていて、結合して表示したいとかならば話は別ですが。

【62410】Re:シートのセル値をユーザーフォームの...
お礼  T-K  - 09/7/20(月) 17:47 -

引用なし
パスワード
   ▼りん さん
ありがとうございます!
参考書よりも分かり易く、かつ、応用までご教示頂き、
助かりました。

▼りん さん:
>T-K さん、こんにちわ。
>>参考書を見ると、例えば以下のようになってます。
>>Sub smpControlSource()
>>  UserForm1.TextBox1.ControlSource = "B2"
>>  UserForm1.Show
>>End Sub
>>
>>この参考で表示できたので特定セルの場合、例えば以下のようにしたら、
>>エラーがでてきました。
>>Sub smpControlSource()
>>  Dim TextBox1 AS String
>>  UserForm1.TextBox1.ControlSource = Worksheets("Sheet1").Range("B2:C2")
>>  UserForm1.Show
>>End Sub
>
>ControlSourceのヘルプより、
> object.ControlSource [= String]
>
>ということで、リンクさせるセルを示す文字列を指定します(参考書の"B2")。
>そして、リンク先のセルは単独でないとエラー(テキストボックスの値なので1つ)になり、B2:C2が結合セルだとしたらB2だけ指定すればよいので、
>
>UserForm1.TextBox1.ControlSource = Worksheets("Sheet1").Range("B2").Address(external:=True)
>
>とすればお望みの結果が得られると思います。
>
>B2とC2がそれぞれ違う文字が入っていて、結合して表示したいとかならば話は別ですが。

3411 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free