Excel VBA質問箱 IV

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

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


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

【29720】ユーザーフォームにおいて masa 05/10/12(水) 16:02 質問[未読]
【29721】Re:ユーザーフォームにおいて ちくたく 05/10/12(水) 16:45 回答[未読]
【29723】Re:ユーザーフォームにおいて masa 05/10/12(水) 16:57 お礼[未読]
【29725】Re:ユーザーフォームにおいて 05/10/12(水) 17:30 発言[未読]
【29726】Re:ユーザーフォームにおいて ちくたく 05/10/12(水) 17:43 回答[未読]
【29729】Re:ユーザーフォームにおいて masa 05/10/12(水) 18:32 お礼[未読]
【29730】Re:ユーザーフォームにおいて ichinose 05/10/12(水) 19:15 発言[未読]
【29765】Re:ユーザーフォームにおいて ちくたく 05/10/13(木) 11:05 お礼[未読]

【29720】ユーザーフォームにおいて
質問  masa  - 05/10/12(水) 16:02 -

引用なし
パスワード
   テキストボックス1とテキストボックス2を作成します。
テキストボックス1に入力した数字を下のエクセルのシートから探し出しテキストボックス2に自動的に表示したいのですがどうしたらいいのかわかりません。
エクセルは2002です。
エクセルのシートには
  a     b
1 31101  あああ
2 31102  いいい
3 31103  ううう
4 31104  えええ
5
6
といった具合になっています。
例えばテキストボックス1に31102を入力すればテキストボックス2に”いいい”が表示するようにしたいのですが教えてもらえませんか?

【29721】Re:ユーザーフォームにおいて
回答  ちくたく  - 05/10/12(水) 16:45 -

引用なし
パスワード
   masa さん
こんにちは。

単純な方法です。

Private Sub TextBox1_Change()
  Dim oriVal As String
  Dim tmpVal As String
  Dim i As Integer
  
  oriVal = TextBox1.Text
  
  For i = 1 To Range("A65536").End(xlUp).Row
    tmpVal = Range("A" & i).Value
    If oriVal = tmpVal Then
      TextBox2.Value = Range("A" & i).Offset(0, 1).Value
    End If
  Next i
End Sub

【29723】Re:ユーザーフォームにおいて
お礼  masa  - 05/10/12(水) 16:57 -

引用なし
パスワード
   解決しました。ありがとうございます。
ところでテキストボックスの名前を変えてしますと動かなくなるのはなぜなのですか?
テキストボックス1をID、テキストボックス2をnameというオブジェクト名をつけたのですがうまくいきません。なぜなのか差し支えなければ教えてもらえませんか?

【29725】Re:ユーザーフォームにおいて
発言    - 05/10/12(水) 17:30 -

引用なし
パスワード
   横から失礼します。

オブジェクト名を例えば、「name」とした時に、

name.Value = Range("A" & i).Offset(0, 1).Value
^^^^

このようにすればできると思ったのですが、如何でしょうか??

【29726】Re:ユーザーフォームにおいて
回答  ちくたく  - 05/10/12(水) 17:43 -

引用なし
パスワード
   masaさん、あさん
こんにちは。

>ところでテキストボックスの名前を変えてしますと動かなくなるのはなぜなのですか?

Private Sub TextBox1_Change()
も適宜修正してください。

そのような仕様については、最初に示して頂いた方が、
一度に解決しますよ。今後、ご参考に。

【29729】Re:ユーザーフォームにおいて
お礼  masa  - 05/10/12(水) 18:32 -

引用なし
パスワード
   >masaさん、さん
>こんにちは。
>
>>ところでテキストボックスの名前を変えてしますと動かなくなるのはなぜなのですか?
>
>Private Sub TextBox1_Change()
>も適宜修正してください。
>
>そのような仕様については、最初に示して頂いた方が、
>一度に解決しますよ。今後、ご参考に。
ありがとうございました。今後参考にします。

【29730】Re:ユーザーフォームにおいて
発言  ichinose  - 05/10/12(水) 19:15 -

引用なし
パスワード
   ▼masa さん、皆さん
こんばんは。

>解決しました。ありがとうございます。
>ところでテキストボックスの名前を変えてしますと動かなくなるのはなぜなのですか?
>テキストボックス1をID、テキストボックス2をnameというオブジェクト名をつけたのですがうまくいきません。なぜなのか差し支えなければ教えてもらえませんか?

オブジェクト名にnameはやめた方が良いですよ!!
テキストボックスのオブジェクト名をこれにすれば

name.Text="aaa"



me.name.text="aaa"


としてもエラーになりますよね?
nameは予約語だと思います。
プログラム言語には、
こう呼ばれるユーザーが命名してはいけない名前があります。

nameはやめた方が良いとおもいます。

【29765】Re:ユーザーフォームにおいて
お礼  ちくたく  - 05/10/13(木) 11:05 -

引用なし
パスワード
   ichinose さん
こんにちは。

>nameはやめた方が良いとおもいます。

フォローありがとうございます。
言われてみれば、赤面です、うっかり気づきませんでした。

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