- ベストアンサー
Excel VBAでドロップダウンリストを作成する方法
- ExcelのVBAを使用して、シート1のA1セルにドロップダウンリストを作成する方法についてアドバイスをお願いします。
- ドロップダウンリストの元のデータは、シート「datalist」のA1セルからA10セルにあります。
- 参考書を参考にしながら以下のコードを作成しましたが、うまく動作しません。アドバイスをお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
たとえばこんな具合に。 sub macro1() dim a as variant a = application.transpose(worksheets("datalist").range("A1:A10")) with worksheets("シート名").range("A1").validation .delete .add type:=xlvalidatelist, formula1:=join(a, ",") end with end sub #入力規則のリストのネタに他のシートのセル範囲を使うのは,マクロ以前に手動で行ってみてもふつーの(ご質問のマクロでやってみようとしたような)やり方では出来ません。
その他の回答 (2)
- 某HN クロメート(Chromate)(@CoalTar)
- ベストアンサー率40% (705/1742)
マクロの自動記録から編集してみました Sub Macro2() '名前の定義 ActiveWorkbook.Names.Add Name:="リスト1", RefersTo:="=datalist!$A$1:$A$10" '入力規則のリストに定義した名前を張り付ける With Worksheets("Sheet1").Range("A1").Validation .Delete .Add Type:=xlValidateList, Formula1:="=リスト1" End With End Sub
お礼
回答ありがとうございました。 マクロで作るという発想をすっかりと忘れていました。 勉強になりました、ありがとうございます。
- mu2011
- ベストアンサー率38% (1910/4994)
一例です。 formula1の引数を変更して下さい。 For文を使用しているのならばセル範囲ではないのか。 Sub Macro1() For Each r In Range("a1:a10") With r.Validation .Delete .Add Type:=xlValidateList, Formula1:="=datalist!a1:a10" End With Next End Sub
お礼
回答ありがとうございます。 いろんなコードが記載できるバリエーションを持つべく、勉強になりました。
お礼
回答ありがとうございます。いつもありがとうございます。 私はなんとか断片的にコードを理解するのが精一杯ですが、このようにコードを自分で記載されることが出来るのがすごいです。 少しずつですが、勉強になっております。ありがとうございました。