- ベストアンサー
Excel入力規則のリストの代替え。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
お気に召すか分かりませんが、VBAを使う例です。xl2000で試しています。 特定のシートのB列で単独セルまたは、一個の結合セルをクリックした時に動作するコードです。 Sheet2のA列に1行目から選択肢を入れておきます。 Ctrl+Shift+:と同様の方法で自動選択するので、余分なデータは入れない事。 リストの一番下に空白を追加して消去も出来る様にしてみました。 ☆シートモジュール Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Column <> 2 Then Exit Sub If Target.Cells.Count > 1 Then If Target.MergeCells = False Then Exit Sub Else If Target.Address <> Target.Cells(1).MergeArea.Address Then Exit Sub End If End If UserForm1.Show End Sub ☆UserForm1モジュール UserForm1には適当なサイズでListBoxを設定します。(サイズはフォーム一杯に自動調整します) Dim targetRange As Range Private Sub ListBox1_Click() ActiveCell.Value = targetRange.Cells(1 + Me.ListBox1.ListIndex, 1).Value Unload Me End Sub Private Sub UserForm_Initialize() Dim sh As Worksheet Set sh = ThisWorkbook.Worksheets("Sheet2") Set targetRange = sh.Range("A1").CurrentRegion Set targetRange = targetRange.Resize(targetRange.Rows.Count + 1, 1) Me.Caption = "メガ入力規則" kFormPosCell Me, ActiveCell.Offset(0, 1) With Me.ListBox1 .Left = 0 .Top = 0 .Width = Me.InsideWidth .Height = Me.InsideHeight .Font.Size = 18 Me.ListBox1.RowSource = sh.Name & "!" & targetRange.Address End With End Sub kFormPosCell は、k窓さんのE03M103を使わせていただきます。参考URLから借用してください。 念のため、シートモジュールの方の参考URLを付けておきます。 http://www.eurus.dti.ne.jp/yoneyama/Excel/vba/vba_event.html とか。
その他の回答 (1)
- chonami
- ベストアンサー率43% (448/1036)
代替案というか、 1つ目 A6のセルだけ大きく高さをとって、後のA7~A11を狭くして大きさを整える。 2つ目 結合をやめる。(他のセルが見えませんので言ってみただけです。) 3つ目 プルダウンのショートカット Alt+↓(下矢印)を使用する。 一般機能の範囲で考え付いた案です。 参考までに。
お礼
まだVBA勉強中なのですが、頑張って理解してみます。 ありがとうございますm(_ _ )m