• ベストアンサー

Excel入力規則のリストの代替え。

入力規則のリストはセルの結合をしている場合は↓ボタンが小さくなって入力しづらいです。 そこで何か便利な代替えになるような機能はないでしょうか。 理想としては、セル上にカーソルを持ってきたりクリックすると、選択肢が現れるというのが理想です。 条件としては、リストを選択したら条件書式で背景色が変るようにしてあるのでセルが見えるようにする。 何か良い案がありますでしょうか。

質問者が選んだベストアンサー

  • ベストアンサー
  • mitarashi
  • ベストアンサー率59% (574/965)
回答No.1

お気に召すか分かりませんが、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 とか。

参考URL:
http://www2.aqua-r.tepm.jp/~kmado/kvba.htm
mzakom
質問者

お礼

まだVBA勉強中なのですが、頑張って理解してみます。 ありがとうございますm(_ _ )m

その他の回答 (1)

  • chonami
  • ベストアンサー率43% (448/1036)
回答No.2

代替案というか、 1つ目 A6のセルだけ大きく高さをとって、後のA7~A11を狭くして大きさを整える。 2つ目 結合をやめる。(他のセルが見えませんので言ってみただけです。) 3つ目 プルダウンのショートカット Alt+↓(下矢印)を使用する。 一般機能の範囲で考え付いた案です。 参考までに。

関連するQ&A