Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


61257 / 76738 ←次へ | 前へ→

【20103】Re:シートのダブルクリック
回答  ichinose  - 04/11/28(日) 12:15 -

引用なし
パスワード
   ▼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 項目取得
という呼び出しコードを記述してはいかがでしょうか?

項目取得というプロシジャーは移動しなくても動くとは思いますが、
関連性から考えると、フォームモジュール内が妥当かと思いますが・・。
0 hits

【20102】シートのダブルクリック mickeypapa 04/11/28(日) 11:59 質問
【20103】Re:シートのダブルクリック ichinose 04/11/28(日) 12:15 回答
【20106】Re:シートのダブルクリック mickeypapa 04/11/28(日) 14:48 お礼
【20119】Re:シートのダブルクリック mickeypapa 04/11/28(日) 21:12 お礼

61257 / 76738 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free