• 締切済み

Excel VBA機能で、ドロップダウンリストの選択肢からセルに値を設

Excel VBA機能で、ドロップダウンリストの選択肢からセルに値を設定したい。 リスト形式のシート(仮にA)の内容を、VBAを使って単票形式のlシート(仮にB)に展開したいと考えています。ところがBのシートには、入力規制のあるセルもあり、ドロップダウンリストからの選択になっています。 今、シートBのセルA1の選択肢を仮に”AAA,BBB,CCC”として、VBAを用いてA1にBBBを設定(選択)する方法をご教示頂きたいと存じます。 ひと通り過去ログは拝見しましたが、恐らく私の見落としとは思うのですが、それらしいものは見当たらないので、質問させて頂きました。宜しくお願いします。

みんなの回答

  • butanji
  • ベストアンサー率0% (0/0)
回答No.4

すみません、m1Range.offset(-1+Range("x1").Value).Valueの間違いでした。

  • butanji
  • ベストアンサー率0% (0/0)
回答No.3

ワークシート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)
回答No.2

>もし可能なら、『選択肢のn番』という方法で指定出来ないだろうか >それを選択肢の2番として、B表のA1に『BBB』に >表示させるという事です。 いまいちわかってませんけれど、No1様の回答のように単純にBBBという値を代入すれば、そのセルに入力規則が設定されていてBBBが2番目であれば、2番目のBBBが選択された状態になりますけれど、そういうことではないのでしょうか? 値がリストの何番目かを調べるには、  Range.Validation.Formula1 を調べれば入力規則のリストが得られますので(定義方法によって、リスト形式の場合とRangeの場合とあり)、現在の値と照合すればn番目ということを調べることは可能ですけれど、その必要があるようにも思えませんけれど…?

  • akina_line
  • ベストアンサー率34% (1124/3287)
回答No.1

こんにちは。  上記の例で、「"AAA,BBB,CCC"から選択」と書かれていますが、リスト形式のA表には、入力させたい値"BBB"がそのまま入っているのですか?  それなら、その"BBB"をそのままB表のセルA1に代入するだけで良いと思います。(入力規則の有無は無関係です。)  他に条件があるか、上記の方法では問題があるのなら、補足してください。 では。

binbin-maru
質問者

補足

早速のご回答ありがとう御座いました。御礼申し上げます。 しかし、私の説明が不足しておりました。ご回答頂いた方法は実現しておりましたが、 もし可能なら、『選択肢のn番』という方法で指定出来ないだろうか、という事を 模索しております。 今回の例で言うと、A表には『BBB』が入力されており、それを選択肢の2番として、 B表のA1に『BBB』に表示させるという事です。 説明が足りず失礼しました。何卒、宜しくお願い申し上げます。

関連するQ&A