• 締切済み

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  ア   イ   ウ   エ   オ 何かヒントをいただければ幸いです。 曖昧な質問で恐縮ですがどうぞよろしくお願い致します。

みんなの回答

  • hana-hana3
  • ベストアンサー率31% (4940/15541)
回答No.2

>ユーザフォームのリストではない余白の部分です。 枠外と言う事の意味は解りましたが、どんなコントロールを使うのでしょうか? リストボックスを囲むなら、イメージとしては「フレーム」が近いようですが? 「ラベル」でも同じ位置に表示させる事は可能です。 下記のような感じでいかがでしょうか? -------------------------------------------------------- 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

rkoyama77
質問者

お礼

hana-hana3さん ご回答ありがとうございました。 近しいことができそうです。 実際のマクロはもう少し複雑なのでこれから試行錯誤してみます。 大変参考になり助かりました。 ありがとうございました。

  • hana-hana3
  • ベストアンサー率31% (4940/15541)
回答No.1

>(1)選択セル情報をユーザフォーム上に表示 UserForm_Initializeで、起動時の読込ができます。 >ユーザフォーム上(リスト外)に表示される。 リスト外と言うのが解りませんが。どこになるのでしょうか? >(2)ユーザフォーム起動時にセル情報をデフォルト選択状態 選択セルは移動(変化)しません。 Private Sub UserForm_Initialize() TextBox1.Value = ActiveCell.Value End Sub

rkoyama77
質問者

補足

ご回答ありがとうございました。 UserForm_Initialize を使うのですね。 やってみます。 >>ユーザフォーム上(リスト外)に表示される。 >リスト外と言うのが解りませんが。どこになるのでしょうか? ユーザフォームのリストではない余白の部分です。 点線が外枠がユーザフォーム、内枠がリストのイメージです。 ____________________________________ | *(1)*             | |______________________________   | || (2)            |  | ||              |  | ||              |  | ||_____________________________|  | |___________________________________| (1):セル情報「南」 (2):リスト  りんご、みかん、すいか、西など 図もあまり綺麗にできれおらず恐縮です。 どうぞよろしくお願いします。