アプリ版:「スタンプのみでお礼する」機能のリリースについて

VBA初心者です。的外れな質問をしている場合にはご容赦ください。

まず ユーザーフォームを表示した時に、
Private Sub UserForm_Initialize()
Set ws1 = Worksheets("s1")
Set gui2 = 銘柄コードから検索

gui2.ListBox1.AddItem "銘柄コードで検索"
gui2.ListBox1.AddItem "銘柄名で検索"
gui2.ListBox1.AddItem "銘柄カナで検索"

End Sub

とリストボックスの各項目を作成しました。
Listboxをクリックした時にlistindexを「リストの数」に格納
する(自分のイメージ)

Private Sub ListBox1_Click()
Set gui2 = 銘柄コードから検索
Set ws1 = Worksheets("s1")

Dim リストの数 As Integer
リストの数 = gui2.ListBox1.ListIndex

End Sub

(自分のイメージ)コマンドボタン2をクリックすると
現在選択されているListbox1のListindexが「リストの数」
に格納されているので、次のSelect文の動きをすると思っています。

Private Sub CommandButton2_Click()
Set gui2 = 銘柄コードから検索
Dim リストの数 As Integer
リストの数 = gui2.ListBox1.ListIndex

Select Case リストの数
Case 0
MsgBox リストの数
Call 銘柄コードで検索
TextBox1.Text = ""
gui2.TextBox1.SetFocus
Case 1
MsgBox リストの数
Call 銘柄名で検索
MsgBox リストの数
TextBox1.Text = ""
gui2.TextBox1.SetFocus
Case 2
MsgBox リストの数
 Call 銘柄カナで検索
TextBox1.Text = ""
gui2.TextBox1.SetFocus
End Select

End Sub

コマンドボタン2をクリックした場合に、ListIndexの値を判断し、Select文
の条件どおりに動作させるためには、どのようにしたらよいでしょうか?
EXCEL2000 を使っています。

A 回答 (3件)

こんにちは。



Set ws1 = Worksheets("s1")
Set gui2 = 銘柄コードから検索

↑このSetの意味が良く解からず、イマイチ何をしたいのか理解出来ませんが、
UserFormにListBoxとCommandButtonを1つずつ置いてテストしてます。

参考になれば、、

'************************************************
Private Sub UserForm_Initialize()
 CommandButton1.TabIndex = 0
 With ListBox1
   .AddItem "銘柄コードで検索"
   .AddItem "銘柄名で検索"
   .AddItem "銘柄カナで検索"
 End With
End Sub

'************************************************
Private Sub CommandButton1_Click()
  HogeHogeCall (ListBox1.ListIndex)
End Sub

'************************************************
Sub HogeHogeCall(i As Integer)
 Select Case i
  Case 0: MsgBox i & ", " & ListBox1.List(i)
  Case 1: MsgBox i & ", " & ListBox1.List(i)
  Case 2: MsgBox i & ", " & ListBox1.List(i)
  Case Else
      MsgBox "ダメ", vbOKOnly + vbInformation, "Hoge"
 End Select
End Sub
    • good
    • 0
この回答へのお礼

大変参考になりました。
ご丁寧な回答どうもありがとうございました。

お礼日時:2002/08/26 09:10

Listindexはわからないんですけど、Textプロパティを使ってみました。



Private Sub CommandButton2_Click()
Dim a$
a = 銘柄コードから検索.listbox1.Text

Msgbox (a)

Select Case a
Case "銘柄コードで検索"
Call 銘柄コードで検索
Case "銘柄名で検索"
Call 銘柄名で検索
Case "銘柄カナで検索"
Call 銘柄カナで検索
End Select
End Sub

「call」は省略できます。

質問の中のコードを見る限り、listbox_clickは必要なさそうですよ。
    • good
    • 0
この回答へのお礼

どうもありがとうございました。
早速ためします。

お礼日時:2002/08/26 09:05

「リストの数」という変数は各プロシジュアーに出てきます。


自分では各プロシジュアーで同じ語句(変数名)を使っているので、同じものと考えているのでしょうが、値が渡って(この意味判りますか)いないとおもいます。
「変数の適用範囲(スコープ)」と言うのが、解説書の解説個所の章のタイトルです。
関数の引数で渡すか、どのプロシジュアーからでも使える
変数として宣言されてはどうでしょう。
蛇足ですが、それと「したいこと」が良く伝わってこないです。設計レベルで別の簡単なやり方があるような感じが
します。したいことを記されては。
    • good
    • 0
この回答へのお礼

どうもありがとうございました。

「したいこと」が良く伝わってこないです・・・・」

実は、この記述はどのように動作するのか?
VBA参考書の記述を応用するには、どうしたらよいか?を主目的として
いるため、おっしゃるとおり、設計レベルで別の簡単なやり方があるのでは
というご指摘もごもっともかと思います。

ご指摘ありがとうございます。

お礼日時:2002/08/26 09:08

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!