重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【解消】通知が届かない不具合について

いつもお世話になります

今、エクセル上で入力規則からドロップダウンリストを作り、
vbaで判定して実行していますが
今はそのセルの文字判定で選択項目を判断しています

UserFormなどのListBoxにはListBox1.ListIndexが有り番号で処理できますが
ValidationにはIndex番号みたいのは無いのでしょうか?

すみません、初心者的な質問ですがよろしくお願いいたします

A 回答 (1件)

こんにちは



リスト形式の場合(Type:=xlValidateList)、元のリストがシートのどこかに記されている場合と、直接リストを文字列で設定している場合とがあります。(どちらであるかは、作者なら事前にわかっているはず)

シート内のリストの場合は、その範囲からMatch関数やFindメソッドで探せばIndex値を計算できるでしょう。
直接リストが記されている場合は、リストは「,」区切りのはずですので、Splitして配列のIndexとして取得するか、あるいは、いちいちSplitしなくても、直接文字列をInstrなどで検索し、見つかった文字までにある「,」の数を数えることでもIndex値に相当するものを取得できると思います。

何度も同じような処理を行うのなら、あらかじめリストの項目を配列にしておくのが便利かも知れません。
いずれにしろ、全体でどのような処理を行いたいのかによって、どのような仕組みにしておくのが便利なのかは変わってくるものと思います。
    • good
    • 0
この回答へのお礼

早速ありがとうございます
index番号は無いんですね
やはり地道にやるしかないですね
ありがとうございました
これからもよろしくお願い致します

お礼日時:2020/03/19 13:36

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