• ベストアンサー

EXCELのリストボックスを選択した行が何行目か

エクセルVBAの初心者です。 VBAを組んでいて表のデーターをリストボックスに表示しています 選択されたリストボックスの値はわかるのですが、リストボックスの上から 何行目を選択したかどうか知りたいのですが、わかる方がおられましたら よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • onlyrom
  • ベストアンサー率59% (228/384)
回答No.2

こんにちは。 何行目を選択したかは、ListIndexプロパティを使います。 但し、これは、一番目が0からになりますので 実際の見た目からすると1行少ない値が返ります。 で、1を加えて、ListIndex+1 が見た目の行になります。   Msgbox ListBox1.ListIndex + 1 & " 行目を選択しました" 以上です。

TAKEWIT
質問者

お礼

Msgbox ListBox1.ListIndex + 1 & " 行目を選択しました" を 実行したところうまく実行できました。有難うございました 今後もよろしくお願いします

その他の回答 (2)

  • Oh-Orange
  • ベストアンサー率63% (854/1345)
回答No.3

★追記。 ・調べたら『ByVal』は必要ないようですね。ごめんなさい。 Public ListIndex As Long Const LB_GETCURSEL = &H188 '選択項目番号の取得 ListIndex = SendMessage( Listbox.hWnd, LB_GETCURSEL, 0, 0 )

参考URL:
http://forums.belution.com/ja/vb/000/005/65s.shtml
TAKEWIT
質問者

お礼

ListIndexをEXCELVBAで使ったらうまく処理できました。 有難うございました。それにしてもC言語は難しいそうですね

  • Oh-Orange
  • ベストアンサー率63% (854/1345)
回答No.1

★初心者さんですか? ・………。 ・私は C/C++ 言語ですが、リストボックスの現在選択している位置は  リストボックス専用の LB_GETCURSEL メッセージで取得できます。 ・次の1行で取得できますけど、あまり Visual Basic には詳しくないです。 ・『SendMessage( Listbox.hWnd, LB_GETCURSEL, 0&, ByVal 0& )』この  関数の戻り値に選択位置が 0~??? の通し番号で返されます。 ・わかりますか? ・『Listbox.hWnd』がリストボックスのウインドウ・ハンドルですよ。 ・以上。おわり。

参考URL:
http://hanatyan.sakura.ne.jp/vbdengon/log_1051to1100.htm

関連するQ&A

専門家に質問してみよう