ドロップダウンリストにはいくつかの項目があります。アイテムを選択すると、リスト内のそのアイテムの位置を数値として取得できますか?ドロップダウンリストで選択した項目の位置を(数字で)取得します
答えて
リストまたはコンボボックスを使用している場合は、ListIndex
のようになります。
VBヘルプListIndex
プロパティ:リストボックスまたはコンボボックスで現在選択されている項目のインデックス番号を返すか設定します。長く読む/書く。備考。このプロパティは、複数選択リストボックスでは使用できません。
何も選択しない場合、ListIndex
の値は-1
です。メモリが使用されている場合は、ゼロベースのインデックスです。
ListIndex
はデザイン時に設定することはできませんので、プロパティウィンドウには表示されません。
コードを入力するときに、リストボックス名を入力してからドットを入力すると、使用可能なすべてのプロパティがエディタに表示されます。リストを下にスクロールし、面白そうに見えるものをメモし、次にそれらを探します。
[データ検証リストのインデックスを探しているなら、これは私がしたいものです。
はThisWorkbookモジュールに次のコードを置き:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim ValidationIndex As Long
Dim rngTest As Excel.Range
'assumes the data validation is in a cell named "rngTest"
On Error Resume Next
Set rngTest = Sh.Range("rngTest")
If rngTest Is Nothing Then
Exit Sub
End If
On Error GoTo 0
If Not Intersect(ActiveCell, Sh.Range("rngTest")) Is Nothing Then
ValidationIndex = GetValidationIndex
MsgBox ValidationIndex
End If
End Sub
は、この機能を入れてこのワークブックモジュール、または他の通常のモジュール:
Function GetValidationIndex() As Long
'returns a 1-based index
Dim rngTest As Excel.Range
Dim varValidationString As Variant
Dim ErrNumber As Long
Dim i As Long
With ActiveCell.Validation
If .Type = xlValidateList Then '3
On Error Resume Next
Set rngTest = ActiveCell.Parent.Range(.Formula1)
'I do this goofy thing with ErrNumber to keep my indenting and flow pretty
ErrNumber = Err.Number
On Error GoTo 0
'if the Validation is defined as a range
If ErrNumber = 0 Then
GetValidationIndex = Application.WorksheetFunction.Match(ActiveCell.Value2, rngTest, 0)
Exit Function
'if the validation is defined by comma-separated values
Else
varValidationString = Split(.Formula1, ",")
For i = LBound(varValidationString) To UBound(varValidationString)
If varValidationString(i) = ActiveCell.Value2 Then
GetValidationIndex = i + 1
Exit Function
End If
Next i
End If
End If
End With
End Function
+1これは一気に驚くほど驚くほどです! –
@ Jean-FrançoisCorbettありがとう!私はそれがOPが望んでいたものではなく、実際の使用を考えることができないと確信していましたが、書くのは楽しいものでした。 –
+1私はJCFと一緒です:) – brettdj
機能を使う必要はないと思います。上記のDougの答えのように、Match関数だけを使って得ることができます。
Dim GetValidationIndex as Integer
Dim rngTest as Range
' Get the validation list
With ActiveCell.Validation
Set rngTest = ActiveCell.Parent.Range(.Formula1)
end with
GetValidationIndex = Application.WorksheetFunction.Match(ActiveCell.Value2, rngTest, 0)
- 1. 選択したドロップダウンリスト項目のIDを取得します
- 2. ドロップダウンリストで選択した項目のIDを取得
- 3. databoundドロップダウンリスト項目を選択
- 4. 他のドロップダウンリストで選択された項目に基づいてドロップダウンリストの項目を削除します
- 5. ドロップダウンリストの項目を選択 - コール/データを取得
- 6. ドロップダウンリスト項目を選択できない
- 7. コンボボックス内の選択した項目にマウスポインタの位置を設定します。
- 8. QListViewで選択した項目からデータを取得する
- 9. WPFリストボックスで選択した項目のテキストを取得
- 10. orbeonオートコンプリートで選択項目を取得
- 11. Androidポップアップメニュークラスで選択したアイテムの位置を取得する
- 12. UIScrollViewで選択項目を取得しますか?
- 13. 数字ではなく選択した項目を表示
- 14. ドロップダウンリストの最初の項目を選択
- 15. 別のドロップダウンリストの選択項目が変更されたときに、ドロップダウンリストで選択した項目を変更する必要があります。
- 16. ドロップダウンリストの項目から値を選択
- 17. HowToは、選択したContextMenu項目をLongListSelectorで取得しますか?
- 18. AspxListBoxの選択項目はnullですが、項目を選択します
- 19. マルチラインリストビューから選択した項目を取得する方法
- 20. EditTextで選択した文字または文字列の位置を取得する方法
- 21. リストビュー項目をダブルクリックすると選択項目を取得
- 22. ドロップダウンリストのJComboBoxナビゲーションで項目が選択されます
- 23. 選択項目の最後の項目を取得
- 24. ItemsControlで選択された項目を取得する
- 25. 選択したオートコンプリート項目からキー/値を取得
- 26. Xamarinフォーム - ListViewで選択されたアイテムの位置を取得します。
- 27. jqueryオートコンプリート - 選択項目を取得
- 28. wxtreeCtrlから選択項目を取得
- 29. コンボボックスから選択項目を取得
- 30. Android:ListViewから選択項目を取得
それでした。私はそれが単純な機能であることを知っていましたが、私はそれを見つけることができませんでした。ご協力いただきありがとうございます! – jroeleveld