Excel 2016 にてダイアログを作成、標準モジュールに以下のコードを作成し、このプロシージャをマクロのオプション設定で CTRL+Q で起動するようにします。
VBA
1Sub Show_SelectWindow() 2 UserForm1.StartUpPosition = 0 '手動 3 UserForm1.Left = Selection.Left + Selection.Width + Application.Left 4 UserForm1.Top = Selection.Top + Application.Top 5 UserForm1.Show 6End Sub
これでワークシート上でCTRL+Qを押すと、左右はシートの行数表示の列分左に、上下は期待より大分上に表示されてしまいます。
また、デフォルトで画面の見えていないセル「Z50」などで CTRL+Q すると左下の見えないところに表示しているようです。
どのようにすれば以下の様にピタリとアクティブセルの横に表示できるのでしょうか?
OKボタン処理にはリストボックスの選択項目をワークシートに反映する以下のコードを記述しています。
VBA
1Private Sub CommandButton1_Click() 2 Dim Values As String 3 4 For i = 0 To ListBox1.ListCount - 1 5 If ListBox1.Selected(i) = True Then 6 If Values <> "" Then Values = Values + "," 7 Values = Values & ListBox1.List(i) 8 End If 9 Next i 10 Selection.Value = Values 11 Unload Me 12End Sub
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/02/01 02:09