[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『Activeコントロールのリストボックスの使い方』(ゴールデンレトリーバー)
教えてほしいのですが
リストボックスの使い方として、プロパティから LinkedCellと
ListFillRangeを設定し、使えるようにはなりましたが、
LinkeCellを固定せず、選択したセルにリストから選んだ項目を入力
できるようにしたいのですが、仕方がわかりません。
教えていただけますでしょうか。
< 使用 Excel:Excel2016、使用 OS:Windows10 >
マクロを使います シートモジュールに
Private Sub ListBox1_Click() ActiveCell.Value = Me.ListBox1.Value End Sub
(ピンク) 2020/03/27(金) 10:27
(ゴールデンレトリーバー) 2020/03/27(金) 10:33
リストボックスの代りに
データの入力規則のリストから入力するのは如何 (ピンク) 2020/03/27(金) 10:44
ダブルクリックしたセルの位置にリストボックスが移動します。 シートモジュールに
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Me.ListBox1.Left = Target.Left Me.ListBox1.Top = Target.Top Cancel = True End Sub
(ピンク) 2020/03/27(金) 10:54
リストボックスをダブルクリックでリストボックスが消えます。 Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean) Me.ListBox1.Visible = False End Sub
セルをダブルクリックでセル位置にリストボックスが出現します。 (先に挙げたBeforeDoubleClickと差替えてください。) Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Me.ListBox1.Visible = True Me.ListBox1.Left = Target.Left Me.ListBox1.Top = Target.Top Cancel = True End Sub
(ピンク) 2020/03/27(金) 11:01
ダブルクリックでリストボックスを消すのはダブルクリック時に 新たな文字が転記され問題がありますので取りやめましょう 代りにリストの最後に END の文字を追加してください。 END が選択されるとリストホックスを非表示にします。
ListBox1_Click を以下に訂正してください。
Private Sub ListBox1_Click() If Me.ListBox1.Value = "END" Then Me.ListBox1.Visible = False Else ActiveCell.Value = Me.ListBox1.Value End If End Sub
(ピンク) 2020/03/27(金) 11:12
BeforeDoubleClickを一部修正して使い勝手を向上しました。
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Me.ListBox1.Visible = True Me.ListBox1.Left = Target.Offset(, 1).Left Me.ListBox1.Top = Target.Top Cancel = True End Sub
(ピンク) 2020/03/27(金) 11:17
他の入力方法を検討してみます。
ListFillRange のアドレスを教えてください。
(ピンク) 2020/03/30(月) 09:42
リスト入力する範囲も知らせてください。 (ピンク) 2020/03/30(月) 09:49
右クリックメニューにリストを表示します。 <シートモジュール> Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean) Dim CMD_BARS As CommandBarControl Dim c As Range
'全てのメニューを一旦削除 For Each CMD_BARS In Application.CommandBars("Cell").Controls CMD_BARS.Visible = False Next For Each c In Sheets("Sheet2").Range("A1:A20") '以下で、新規のメニューを追加 Set CMD_BARS = Application.CommandBars("Cell").Controls.Add() With CMD_BARS .Caption = c.Value .OnAction = "'InputItem """ & c.Value & """'" End With Next Application.CommandBars("Cell").ShowPopup Cancel = True Application.CommandBars("Cell").Reset End Sub
<標準モジュール> Sub InputItem(a As String) ActiveCell.Value = a End Sub
(ピンク) 2020/03/30(月) 10:51
>sheet2!A1:A30です。
訂正 For Each c In Sheets("Sheet2").Range("A1:A30")
(ピンク) 2020/03/30(月) 10:53
A B C D
1 赤 赤 黄
2
上の図のように入れようとするとB1の赤が入力できません。 ですが一旦C1の黄を先に入力してから
B1を選択し赤を入力すると入ります。これは何故でしょうか?
作りたい表では結構な頻度で同じ文字を入力する事が多いので続けて入力できる方が助かります。
何ども申し訳ございませんが、何とかなるでしょうか?
(ゴールデンレトリーバー) 2020/03/30(月) 11:48
>すぐ右のセルに同じ文字を入れようとすると入りません。
こちらでは↑の症状は確認できません
何か入力規則等の制限、若しくはWorksheet_Changeなどで制限を掛けられているのでは?
(ピンク) 2020/03/30(月) 11:54
新規シートで行っても同じ結果になりますか?
(ピンク) 2020/03/30(月) 16:02
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.