Excel VBA質問箱 IV

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

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


7900 / 13645 ツリー ←次へ | 前へ→

【36186】セルの値をテキストボックスに表示する方法を教えてください VBA勉強中 06/3/23(木) 23:16 質問[未読]
【36187】Re:セルの値をテキストボックスに表示する... Kein 06/3/23(木) 23:28 回答[未読]
【36188】Re:セルの値をテキストボックスに表示する... VBA勉強中 06/3/23(木) 23:47 質問[未読]
【36189】Re:セルの値をテキストボックスに表示する... Kein 06/3/24(金) 0:17 発言[未読]
【36190】Re:セルの値をテキストボックスに表示する... とおりすがり 06/3/24(金) 3:25 発言[未読]

【36186】セルの値をテキストボックスに表示する方...
質問  VBA勉強中  - 06/3/23(木) 23:16 -

引用なし
パスワード
   こんばんは。
基本的なことになるかと思いますが教えてもらえないでしょうか?
ユーザーフォームにTextBox1とTextBox2及びCommandButton1を作っています。
データベースというシートに以下のものを書きました。
  A  B  C 
1 11 あ
2 12 い
3 13 う
4 14 え
5 15 お
 
これをTextBox1に”11”をTextBox2に”あ”を入力せずに表示させたいのですがどうすればよいのでしょうか。
私のコードはこんな感じに記入しています。(全然意味が分からずみようみまねでやっています)
Private Sub TextBox1_Change()
  Sheets("データベース").Select           
  Cells(2, 1) = UserForm1.TextBox1.Text
End Sub
Private Sub TextBox2_Change()
  Sheets("データベース").Select           
  Cells(2, 2) = UserForm1.TextBox2.Text
End Sub
と書いたのですが表示されません。根本的に違うのでしょうがどこがどう違うのか分りません。よろしくお願いします。
あとCommandButton1を押すとしたの行にいくようにするために作っています。

【36187】Re:セルの値をテキストボックスに表示す...
回答  Kein  - 06/3/23(木) 23:28 -

引用なし
パスワード
   ユーザーフォームを表示したとき、初期状態で A1 と B1 の値が入っていれば良い、
ということなら

Private Sub UserForm1_Initialized()
  With Worksheets("データベース")
   Me.TextBox1.Text = .Range("A1").Value
   Me.TextBox2.Text = .Range("B1").Value
  End With
End Sub

>CommandButton1を押すとしたの行にいくように

Private Sub CommandButton1_Click()
  Dim CkR As Variant

  With Worksheets("データベース")
   CkR = Application.Match(TextBox2.Text, .Range("B:B"), 0)
   If IsError(CkR) Then
     MsgBox "テキストボックスの値がシート上に見つかりません", 48
     Exit Sub
   End If
   TextBox1.Text = .Cells(CkR + 1, 1).Value
   TextBox2.Text = .Cells(CkR + 1, 2).Value
  End With
End Sub

ぐらいで出来ると思います。

【36188】Re:セルの値をテキストボックスに表示す...
質問  VBA勉強中  - 06/3/23(木) 23:47 -

引用なし
パスワード
   ▼Kein さん:
>ユーザーフォームを表示したとき、初期状態で A1 と B1 の値が入っていれば良い、
>ということなら
>
>Private Sub UserForm1_Initialized()
>  With Worksheets("データベース")
>   Me.TextBox1.Text = .Range("A1").Value
>   Me.TextBox2.Text = .Range("B1").Value
>  End With
>End Sub
うまく表示できません。コピーしているのですがどうして。。。

【36189】Re:セルの値をテキストボックスに表示す...
発言  Kein  - 06/3/24(金) 0:17 -

引用なし
パスワード
   あ、マクロタイトルが間違ってました。すいません。

Private Sub UserForm_Initialize()

と、変更して下さい。

【36190】Re:セルの値をテキストボックスに表示す...
発言  とおりすがり  - 06/3/24(金) 3:25 -

引用なし
パスワード
   >Private Sub TextBox1_Change()
>  Sheets("データベース").Select           
>  Cells(2, 1) = UserForm1.TextBox1.Text
セル(2,1)にユーザーフォーム1のテキストボックスのテキストを入れる。
って意味になります。
テキストボックスにセルの値を入れたいのであれば、
TextBox1.Value = Cells(2, 1).Value となります。
右左が逆です。
TextBox1_Change というのは。テキストボックス1が変更されたときという意味。
入力せずにということであれば、使うイベントもちょっと違う。

どこが違うかという質問でしたので、敢えて違うと感じたところを書かせていただきました。

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