|
▼mickeypapa さん:
こんにちは。
>データの入力されているシート上でダブルクリックをすると、
>その行のB列のセルを選択し、ユーザーフォームを表示して
>ユーザーフォームの各項目(テキストボックス、コンボボックス等)にシートの
>データを表示させたいのですが、
>
>データシートに以下のコード
>Option Explicit
>
>Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
> Range(Target.Address).End(xlToLeft).Offset(0, 1).Select
> If ActiveCell = Empty Then
> ElseIf IsDate(ActiveCell.Value) = True Then '日付の時にフォーム表示
frmUnsou.Show 'モーダルモードの場合だとフォームを閉じるまで
' この「項目取得」というプロシジャーには制御が
' 移りませんよ!!
> 項目取得
> End If
>End Sub
>
>※項目取得はModule1に
>Sub 項目取得()
>With frmUnsou
> .labNo.Caption = ActiveCell.Offset(0, -1)
> .txtDay.Value = Format(ActiveCell, "yyyy/mm/dd")
> .txtKyaku1.Value = ActiveCell.Offset(0, 1)
> .txtKyaku2.Value = ActiveCell.Offset(0, 3)
> .txtGenba1.Value = ActiveCell.Offset(0, 2)
> .txtGenba2.Value = ActiveCell.Offset(0, 4)
> ・
> ・
> ・
>の様に書いておりますが、
>シートをダブルクリックすると、ユーザーフォームは表示されるのですが、
>項目の取得が出来ません。
見せていただいたコードからですと、
項目取得というプロシジャーを標準モジュールではなく、
この「frmUnsou」というフォームのモジュールに移動して下さい。
後は、このフォームのInitializeイベントで
call 項目取得
という呼び出しコードを記述してはいかがでしょうか?
項目取得というプロシジャーは移動しなくても動くとは思いますが、
関連性から考えると、フォームモジュール内が妥当かと思いますが・・。
|
|