- ベストアンサー
EXCELのリストボックスを選択した行が何行目か
エクセルVBAの初心者です。 VBAを組んでいて表のデーターをリストボックスに表示しています 選択されたリストボックスの値はわかるのですが、リストボックスの上から 何行目を選択したかどうか知りたいのですが、わかる方がおられましたら よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。 何行目を選択したかは、ListIndexプロパティを使います。 但し、これは、一番目が0からになりますので 実際の見た目からすると1行少ない値が返ります。 で、1を加えて、ListIndex+1 が見た目の行になります。 Msgbox ListBox1.ListIndex + 1 & " 行目を選択しました" 以上です。
その他の回答 (2)
- Oh-Orange
- ベストアンサー率63% (854/1345)
★追記。 ・調べたら『ByVal』は必要ないようですね。ごめんなさい。 Public ListIndex As Long Const LB_GETCURSEL = &H188 '選択項目番号の取得 ListIndex = SendMessage( Listbox.hWnd, LB_GETCURSEL, 0, 0 )
お礼
ListIndexをEXCELVBAで使ったらうまく処理できました。 有難うございました。それにしてもC言語は難しいそうですね
- Oh-Orange
- ベストアンサー率63% (854/1345)
★初心者さんですか? ・………。 ・私は C/C++ 言語ですが、リストボックスの現在選択している位置は リストボックス専用の LB_GETCURSEL メッセージで取得できます。 ・次の1行で取得できますけど、あまり Visual Basic には詳しくないです。 ・『SendMessage( Listbox.hWnd, LB_GETCURSEL, 0&, ByVal 0& )』この 関数の戻り値に選択位置が 0~??? の通し番号で返されます。 ・わかりますか? ・『Listbox.hWnd』がリストボックスのウインドウ・ハンドルですよ。 ・以上。おわり。
お礼
Msgbox ListBox1.ListIndex + 1 & " 行目を選択しました" を 実行したところうまく実行できました。有難うございました 今後もよろしくお願いします