No.1ベストアンサー
- 回答日時:
Sheet1で行う例です。
VBAのコントロールツールボックスからSheet1にコンボボックスを1つ作ります。
混乱をきたすとまずいので、オブジェクト名などは初期値のままとします。
(オブジェクト名は初期値のComboBox1とします)高さ、幅は適当に調整して下さい。
『東京、大阪』をどのように設定すればいいか明言されていないので、数も2つだし
コンボボックスを表示する時にセットしています。
ListFillRangeプロパティで事前に設定していれば、If~End Ifは不要になります。
例えば、セルA1=東京、A2=大阪にしてListFillRangeをA1:A2にするような感じです。
実質3行で終わっています。
Sheet1全体で入力ができるのもおかしいので、B列のみこの操作ができるようにしてあります。
テキトーに修正して下さい。
ツール→マクロ→Visual Basic Editor でVBE画面に移り、Sheet1のコードウインドウに貼り付けます。
ここから
↓
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
With ComboBox1
If Target.Column = 2 Then 'B列(Column=2)なら表示する例
.Visible = True
If .ListCount <> 2 Then 'クリックの都度Listを決めている
.Clear
.AddItem "東京"
.AddItem "大阪"
End If
.Top = Target.Offset(0, 1).Top '縦位置を決める
.Left = Target.Offset(0, 1).Left '横位置を決める
.LinkedCell = Target.Address 'リンクするセルを決める
Else
.Visible = False
End If
End With
End Sub
No.3
- 回答日時:
「セルに内容をセットしたい」との希望がよせられたので、上の2つのドロップダウンのクリックした項目内容をセルにセットする方法を載せます。
-------
1番上のドロップダウンの所へカーソルを置いて、マウスの右クリック
を押す。「マクロ登録」をクリック。「新規作成」をクリック。
Sub ドロップ1_Change()
End Subと現れるから、SubとEndSubの間に下記を貼りつける。
「実行」し、ワークシートに帰り、ドロップダウンの▼をクリックして
好きな項目を選択すると、セルに、ドロップダウンで選んだ項目が出る。
-------
Sub ドロップ1_Change()
ary1 = Array("", "東京", "大阪", "名古屋", "仙台")
a = ActiveSheet.DropDowns(1).ListIndex
Worksheets("sheet1").Range("a4") = ary1(a)
End Sub
Sub ドロップ2_Change()
ary1 = Array("", "夏", "秋", "冬", "春")
a = ActiveSheet.DropDowns(2).ListIndex
Worksheets("sheet1").Range("a6") = ary1(a)
End Sub
------
LinkedCellの場合はListIndexの数字しか現われないが、このような似た設定で項目内容が出せる設定があったように思いますが、思い出せないので取りあえず上記のようにして見ました。ListやListIndex辺りを調べればわかるかも。
No.2
- 回答日時:
下記の様なのはいかがですか。
AddItemのところを簡略にしたかったんですが取りあえず載せます。
Sub test01()
Dim n(10)
ll = Worksheets("sheet1").Cells(3, 3).Left
tt = Worksheets("sheet1").Cells(3, 3).Top
ww = Worksheets("sheet1").Cells(3, 3).Width
hh = Worksheets("sheet1").Cells(3, 3).Height
k = 1
For i = 1 To 10 Step 2
With Worksheets("sheet1")
Set cb = .Shapes.AddFormControl(xlDropDown, ll, tt + hh * i, ww, hh)
n(k) = cb.Name
' cb.ControlFormat.LinkedCell = "A" & Trim(Str(2 + 2 * k))
k = k + 1
End With
Next i
Worksheets("sheet1").DropDowns(n(1)).AddItem ("東京")
Worksheets("sheet1").DropDowns(n(1)).AddItem ("大阪")
Worksheets("sheet1").DropDowns(n(1)).AddItem ("名古屋")
Worksheets("sheet1").DropDowns(n(1)).AddItem ("福岡")
'---------
Worksheets("sheet1").DropDowns(n(2)).AddItem ("夏")
Worksheets("sheet1").DropDowns(n(2)).AddItem ("秋")
Worksheets("sheet1").DropDowns(n(2)).AddItem ("冬")
Worksheets("sheet1").DropDowns(n(2)).AddItem ("春")
'---------
Worksheets("sheet1").DropDowns(n(3)).AddItem ("男")
Worksheets("sheet1").DropDowns(n(3)).AddItem ("女")
Worksheets("sheet1").DropDowns(n(3)).AddItem ("子供")
Worksheets("sheet1").DropDowns(n(3)).AddItem ("老人")
'---------
Worksheets("sheet1").DropDowns(n(4)).AddItem ("10代")
Worksheets("sheet1").DropDowns(n(4)).AddItem ("20代")
Worksheets("sheet1").DropDowns(n(4)).AddItem ("30代")
Worksheets("sheet1").DropDowns(n(4)).AddItem ("40代")
'---------
Worksheets("sheet1").DropDowns(n(5)).AddItem ("大卒")
Worksheets("sheet1").DropDowns(n(5)).AddItem ("高卒")
Worksheets("sheet1").DropDowns(n(5)).AddItem ("短大卒")
Worksheets("sheet1").DropDowns(n(5)).AddItem ("院卒")
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルVBA 任意のセルの選択時、指定のセルの値を表示 1 2023/04/21 08:13
- Excel(エクセル) IF 関数で「〇〇 という文字を含む場合」の分岐処理で表示された数字はSUMで数字集計できますか? 3 2022/08/02 16:29
- Excel(エクセル) エクセルの散布図で新たに入力した値のデータラベルが空欄になる現象 1 2022/04/26 09:31
- Excel(エクセル) 【Excel】指定のセル内容を基に別シートのセルを検索して選択する【VBA】 1 2022/06/16 16:16
- Visual Basic(VBA) VBA ドロップダウンリストを残して値のみクリア 2 2022/10/27 05:42
- その他(データベース) Accessフォームからパラメーターで表示したレコードを指定のExcelのセルへ転送する方法について 2 2022/08/22 18:04
- Excel(エクセル) エクセルについて教えてください。 2 2023/06/14 11:11
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 3 2022/06/10 09:24
- Excel(エクセル) エクセルの数式で教えてください。 1 2023/02/02 10:20
- Excel(エクセル) エクセルで”入力シート”の文字書式の変更を”出力シート”で同じ文字書式で印刷したいです。VBA希望 4 2023/04/24 11:07
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
関西弁はなぜ人を不快にさせる...
-
日本へ架ける国際電話のcountry...
-
くら寿司WiFiパスワード分から...
-
「無理しないでね」って意味だ...
-
贈呈式の司会進行の原稿につて
-
大阪人ってどうして威圧的なん...
-
大阪人ですが、大阪人が嫌いで...
-
キャバ嬢です。 お客様が好きに...
-
大阪が嫌いになりだした
-
風俗の大阪のアポロビルみたい...
-
「○○さんの家」という意味で「...
-
話してる時に『〇〇〇〇じゃな...
-
関西弁で言う「ええしの子」の...
-
関西のノリがほんとにしんどいです
-
大阪に合わない
-
【関西の方限定】 関西弁につ...
-
電信棒という表現は方言ですか?
-
関西(大阪)の人って「キッショ...
-
大阪で29cm以上の靴を扱っている店
-
就活で転居の理由を聞かれたら?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
くら寿司WiFiパスワード分から...
-
関西弁はなぜ人を不快にさせる...
-
JRで神戸駅から大阪まで 快...
-
キャバ嬢です。 お客様が好きに...
-
贈呈式の司会進行の原稿につて
-
日本へ架ける国際電話のcountry...
-
大阪に合わない
-
風俗の大阪のアポロビルみたい...
-
大阪人ってどうして威圧的なん...
-
大阪人ですが、大阪人が嫌いで...
-
「無理しないでね」って意味だ...
-
電信棒という表現は方言ですか?
-
友達(東京人)が大阪が合わな...
-
大阪が嫌いになりだした
-
「○○さんの家」という意味で「...
-
関西のノリがほんとにしんどいです
-
複数列の平均を出したい
-
関西弁で言う「ええしの子」の...
-
電話番号の最初の3桁や4桁って...
-
「半時間」って方言ですか?
おすすめ情報