- 締切済み
VBA ユーザフォームで作成したリストの選択状態を表示する方法
セルダブルクリック時にユーザフォームでリスト入力するマクロを作成しています。 Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)でユーザフォームを用いてリスト作成は実現できています。 (実際は複雑でコードは書ききれません。ごめんなさい) 上記の前提で、次の2つの実現方法を教えてださい。 (1)選択セル情報をユーザフォーム上に表示 (2)ユーザフォーム起動時にセル情報をデフォルト選択状態 具体例として、 以下のように入力されている場合、C2をダブルクリックすると ユーザフォーム上にリストが表示され、 (1)「南」が表示されています。の文言がユーザフォーム上(リスト外)に表示される。 (2)デフォルト状態で「南」が選択された状態となる。 という状態ができれば望ましいです。 A B C E F 1 リンゴ みかん すいか なし ばなな 2 西 東 南 北 ?? 3 上 下 右 左 --- 4 あ い う え お 5 ア イ ウ エ オ 何かヒントをいただければ幸いです。 曖昧な質問で恐縮ですがどうぞよろしくお願い致します。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- hana-hana3
- ベストアンサー率31% (4940/15541)
>ユーザフォームのリストではない余白の部分です。 枠外と言う事の意味は解りましたが、どんなコントロールを使うのでしょうか? リストボックスを囲むなら、イメージとしては「フレーム」が近いようですが? 「ラベル」でも同じ位置に表示させる事は可能です。 下記のような感じでいかがでしょうか? -------------------------------------------------------- Private Sub UserForm_Initialize() Dim msg As String Dim colm As Long msg = ActiveCell.Text colm = ActiveCell.Column 'ラベルの場合 'Label1.Caption = msg 'フレームの場合 'Frame1.Caption = msg With ListBox1 '項目名記入 For i = 1 To 5 .AddItem Cells(1, i) Next 'リストから自動選択する場合 '.Text = Cells(1, colm) End With End Sub
- hana-hana3
- ベストアンサー率31% (4940/15541)
>(1)選択セル情報をユーザフォーム上に表示 UserForm_Initializeで、起動時の読込ができます。 >ユーザフォーム上(リスト外)に表示される。 リスト外と言うのが解りませんが。どこになるのでしょうか? >(2)ユーザフォーム起動時にセル情報をデフォルト選択状態 選択セルは移動(変化)しません。 Private Sub UserForm_Initialize() TextBox1.Value = ActiveCell.Value End Sub
補足
ご回答ありがとうございました。 UserForm_Initialize を使うのですね。 やってみます。 >>ユーザフォーム上(リスト外)に表示される。 >リスト外と言うのが解りませんが。どこになるのでしょうか? ユーザフォームのリストではない余白の部分です。 点線が外枠がユーザフォーム、内枠がリストのイメージです。 ____________________________________ | *(1)* | |______________________________ | || (2) | | || | | || | | ||_____________________________| | |___________________________________| (1):セル情報「南」 (2):リスト りんご、みかん、すいか、西など 図もあまり綺麗にできれおらず恐縮です。 どうぞよろしくお願いします。
お礼
hana-hana3さん ご回答ありがとうございました。 近しいことができそうです。 実際のマクロはもう少し複雑なのでこれから試行錯誤してみます。 大変参考になり助かりました。 ありがとうございました。