Excel VBA質問箱 IV

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

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


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

【16454】コンボボックスの文字を消す→実行時エラー OM 04/7/28(水) 11:54 質問[未読]
【16459】Re:コンボボックスの文字を消す→実行時エ... Jaka 04/7/28(水) 12:48 回答[未読]
【16460】間違えました。 Jaka 04/7/28(水) 12:55 回答[未読]
【16462】Re:間違えました。 OM 04/7/28(水) 13:28 質問[未読]
【16463】うわぁぁぁぁまちがったぁぁぁ OM 04/7/28(水) 13:33 発言[未読]
【16467】Re:間違えました。 Jaka 04/7/28(水) 13:38 回答[未読]
【16469】Re:間違えました。 OM 04/7/28(水) 14:16 お礼[未読]

【16454】コンボボックスの文字を消す→実行時エラ...
質問  OM  - 04/7/28(水) 11:54 -

引用なし
パスワード
   皆様はじめまして。質問させてください。
VBA暦1ヶ月(しかも学生のとき授業で教わっただけ)なので
ヘンテコな質問になると思いますがどうかご容赦ください。

コンボボックスで項目を選択すると、それに関連する情報を
テキストボックスに表示させるというものを作りました。
そこまでは問題ないのですがコンボボックスで選択できる内容が
非常に多く、しかも連続使用が想定されるので
まず手入力で項目名の頭文字または全ての文字を入力し、
検索できるようにしたいのです。
ところが初期状態(ユーザーフォームを表示させてすぐコンボ内空白状態)なら
思ったとおりの動きをしてくれるのに、OKこの項目の情報はこれか、じゃあ次。
と別の項目をキーボードで入力しようとすると(2回目なのでコンボ内に文字がある)
「実行時エラー1004 アプリケーション定義またはオブジェクト定義のエラーです。」
となるのですよ!勿論マウスやAlt+↓で項目を見つけて選択すれば問題ないんですが
何しろ項目があまりに多すぎてそれでは使い勝手が悪すぎます。
普通こういう場合はコンボボックスに一度表示させた文字を
ボタンか何かを使って消去して新たに入力するみたいなんですが、
仕事で使うものを作ろうとしてまして、仕事中はキーボード主体の操作になるので
deleteやbackspaceで文字を消して→先頭文字入力→ドロップダウン→項目選択という
流れで使えるようにしたいのです。というかこれができなければ
せっかく作っても普通に役に立たないです(´・ω・`)つかえない・・・

ボタンで消す以外に一度コンボボックスに表示させた項目を
問題無く消去または上書きする方法はありますか?
どうかよろしくお願いします。状況説明がうまくいかず長文大変失礼しました。

【16459】Re:コンボボックスの文字を消す→実行時...
回答  Jaka  - 04/7/28(水) 12:48 -

引用なし
パスワード
   こんにちは。
コード見てないので、なんとも言えませんが、こんな感じにしてみたら?

If ComboBox1.ListIndex <> -1 Then
  Msgbox ComboBox1.Column(0)
End If

【16460】間違えました。
回答  Jaka  - 04/7/28(水) 12:55 -

引用なし
パスワード
   こんな感じ。

Private Sub ComboBox1_Change()
  If ComboBox1.ListIndex <> -1 Then
    MsgBox ComboBox1.List(ComboBox1.ListIndex)
  End If
End Sub

【16462】Re:間違えました。
質問  OM  - 04/7/28(水) 13:28 -

引用なし
パスワード
   >>Jaka さま

早速ありがとうございます!
しかし漠然と追加してみましたが「エラー424 オブジェクトが必要です。」
と帰ってきました…orz
なんか肝心なものがぬけてるんでしょうか?しょぼーん

Private Sub combokataban_Change()
textbox0 = Range("c1").Offset(combokataban.ListIndex).Value
TextBox1 = Range("d1").Offset(combokataban.ListIndex).Value
TextBox2 = Range("e1").Offset(combokataban.ListIndex).Value

  If ComboBox1.ListIndex <> -1 Then
    MsgBox ComboBox1.List(ComboBox1.ListIndex)
  End If

End Sub

↑教えてくださったものをまんまコピペして、今こういう状態になってます。

【16463】うわぁぁぁぁまちがったぁぁぁ
発言  OM  - 04/7/28(水) 13:33 -

引用なし
パスワード
   ごめんなさいこれじゃ動くわけなかったですねよく見もせずにすみません!!!!

Private Sub combokataban_Change()
textbox0 = Range("c1").Offset(combokataban.ListIndex).Value
TextBox1 = Range("d1").Offset(combokataban.ListIndex).Value
TextBox2 = Range("e1").Offset(combokataban.ListIndex).Value

  If combokataban.ListIndex <> -1 Then
    MsgBox combokataban.List(combokataban.ListIndex)
  End If

End Sub

こうです。でも今度はなぜかいちいち数字のメッセージ?が出てきます。何だろ。

【16467】Re:間違えました。
回答  Jaka  - 04/7/28(水) 13:38 -

引用なし
パスワード
   >Private Sub combokataban_Change()
                    ↓ これでいいんですか???
>textbox0 = Range("c1").Offset(combokataban.ListIndex).Value
>TextBox1 = Range("d1").Offset(combokataban.ListIndex).Value
>TextBox2 = Range("e1").Offset(combokataban.ListIndex).Value
>
>  If ComboBox1.ListIndex <> -1 Then
>    MsgBox ComboBox1.List(ComboBox1.ListIndex)
>  End If
>
>End Sub

>combokataban.ListIndex ← この辺が全くわかんないんですけど...。
あっているとしたら、こんな感じになるのかなぁ??
なんにしても↓この類が、何をしようとしているのか良く解りません。
>Range("c1").Offset(combokataban.ListIndex).Value

>Private Sub combokataban_Change()
>If ComboBox1.ListIndex <> -1 Then
>  textbox0 = Range("c1").Offset(combokataban.ListIndex).Value
>  TextBox1 = Range("d1").Offset(combokataban.ListIndex).Value
>  TextBox2 = Range("e1").Offset(combokataban.ListIndex).Value
>End If
>End Sub

【16469】Re:間違えました。
お礼  OM  - 04/7/28(水) 14:16 -

引用なし
パスワード
   Jaka さま

Private Sub combokataban_Change()
If Combokataban.ListIndex <> -1 Then
  Textbox0 = Range("c1").Offset(combokataban.ListIndex).Value
  TextBox1 = Range("d1").Offset(combokataban.ListIndex).Value
  TextBox2 = Range("e1").Offset(combokataban.ListIndex).Value
End If
End Sub

こんな感じ??

なんと!!これでできましたよ一週間悩んだのがアホのようです
本当にありがとうございます!!普通に感動しました(仕事中だ)

>なんにしても↓この類が、何をしようとしているのか良く解りません。
>Range("c1").Offset(combokataban.ListIndex).Value

私もよくわかりませんが(ぇー)これでセルに入ってる数字と項目を取ってきて
表示させてる?か何かだった気がします。VBA講座見ながらおっかなびっくり
ここまで書いたのでさっぱりであります
まぁ動くし別にいいかなと←最悪

ありがとうございました(>ω<)ノシ

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