- 締切済み
Excel VBA機能で、ドロップダウンリストの選択肢からセルに値を設
Excel VBA機能で、ドロップダウンリストの選択肢からセルに値を設定したい。 リスト形式のシート(仮にA)の内容を、VBAを使って単票形式のlシート(仮にB)に展開したいと考えています。ところがBのシートには、入力規制のあるセルもあり、ドロップダウンリストからの選択になっています。 今、シートBのセルA1の選択肢を仮に”AAA,BBB,CCC”として、VBAを用いてA1にBBBを設定(選択)する方法をご教示頂きたいと存じます。 ひと通り過去ログは拝見しましたが、恐らく私の見落としとは思うのですが、それらしいものは見当たらないので、質問させて頂きました。宜しくお願いします。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- butanji
- ベストアンサー率0% (0/0)
すみません、m1Range.offset(-1+Range("x1").Value).Valueの間違いでした。
- butanji
- ベストアンサー率0% (0/0)
ワークシートBのセルX1に数字nを代入して、セルb20:b22にドロップダウンリストの参照範囲があるとすると、 ワークシートBのシートモジュールに Sub test() Dim m1Range As Range For Each m1Range In Range(Range("a1").Validation.Formula1) If m1Range.Row = 20 then Range("a1").Value = m1Range.Offset(m1Range.Row-1+Range("x1").Value).Value End If Next End Sub
- fujillin
- ベストアンサー率61% (1594/2576)
>もし可能なら、『選択肢のn番』という方法で指定出来ないだろうか >それを選択肢の2番として、B表のA1に『BBB』に >表示させるという事です。 いまいちわかってませんけれど、No1様の回答のように単純にBBBという値を代入すれば、そのセルに入力規則が設定されていてBBBが2番目であれば、2番目のBBBが選択された状態になりますけれど、そういうことではないのでしょうか? 値がリストの何番目かを調べるには、 Range.Validation.Formula1 を調べれば入力規則のリストが得られますので(定義方法によって、リスト形式の場合とRangeの場合とあり)、現在の値と照合すればn番目ということを調べることは可能ですけれど、その必要があるようにも思えませんけれど…?
- akina_line
- ベストアンサー率34% (1124/3287)
こんにちは。 上記の例で、「"AAA,BBB,CCC"から選択」と書かれていますが、リスト形式のA表には、入力させたい値"BBB"がそのまま入っているのですか? それなら、その"BBB"をそのままB表のセルA1に代入するだけで良いと思います。(入力規則の有無は無関係です。) 他に条件があるか、上記の方法では問題があるのなら、補足してください。 では。
補足
早速のご回答ありがとう御座いました。御礼申し上げます。 しかし、私の説明が不足しておりました。ご回答頂いた方法は実現しておりましたが、 もし可能なら、『選択肢のn番』という方法で指定出来ないだろうか、という事を 模索しております。 今回の例で言うと、A表には『BBB』が入力されており、それを選択肢の2番として、 B表のA1に『BBB』に表示させるという事です。 説明が足りず失礼しました。何卒、宜しくお願い申し上げます。