dポイントプレゼントキャンペーン実施中!

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

リスト形式のシート(仮にA)の内容を、VBAを使って単票形式のlシート(仮にB)に展開したいと考えています。ところがBのシートには、入力規制のあるセルもあり、ドロップダウンリストからの選択になっています。

今、シートBのセルA1の選択肢を仮に”AAA,BBB,CCC”として、VBAを用いてA1にBBBを設定(選択)する方法をご教示頂きたいと存じます。

ひと通り過去ログは拝見しましたが、恐らく私の見落としとは思うのですが、それらしいものは見当たらないので、質問させて頂きました。宜しくお願いします。

A 回答 (4件)

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

    • good
    • 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
    • good
    • 1

>もし可能なら、『選択肢のn番』という方法で指定出来ないだろうか



>それを選択肢の2番として、B表のA1に『BBB』に
>表示させるという事です。
いまいちわかってませんけれど、No1様の回答のように単純にBBBという値を代入すれば、そのセルに入力規則が設定されていてBBBが2番目であれば、2番目のBBBが選択された状態になりますけれど、そういうことではないのでしょうか?

値がリストの何番目かを調べるには、
 Range.Validation.Formula1
を調べれば入力規則のリストが得られますので(定義方法によって、リスト形式の場合とRangeの場合とあり)、現在の値と照合すればn番目ということを調べることは可能ですけれど、その必要があるようにも思えませんけれど…?
    • good
    • 0

こんにちは。



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

 他に条件があるか、上記の方法では問題があるのなら、補足してください。

では。

この回答への補足

早速のご回答ありがとう御座いました。御礼申し上げます。

しかし、私の説明が不足しておりました。ご回答頂いた方法は実現しておりましたが、
もし可能なら、『選択肢のn番』という方法で指定出来ないだろうか、という事を
模索しております。

今回の例で言うと、A表には『BBB』が入力されており、それを選択肢の2番として、
B表のA1に『BBB』に表示させるという事です。

説明が足りず失礼しました。何卒、宜しくお願い申し上げます。

補足日時:2010/08/25 16:41
    • good
    • 0

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

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A