| 
    
     |  | おはようございます。 
 
 >名簿を作成しており、それをわかりやすいようフォームを作成しました。
 >
 >以下のコードで1行目の番号をダブルクリックするとフォームを呼び出すよう参考書を見て組みました。
 このフォームとは 何のことですか?データ? ということですか?
 
 それとシートに名簿を作成してあるなら、そのレイアウトを
 きちんと記述しててください。
 これがプログラムの入力データになるのですから、
 詳細に記述する必要があります。この入力データを見て、
 プロフラムを作るのですから、入力データの詳細も記述しなければ
 閲覧者は、プログラムの内容が把握できませんよね!!
 
 それと必要なのは、出力先のレイアウトもです。
 Sheet2が出力先なら、ここの詳細な情報も必要です。
 そうは、思いませんか?
 
 
 入力データ記述例
 
 A   B   C   D  ・・・・
 1
 2
 3  番号  項目1  氏名 ・・・・・・・・
 4   1   xx   あああああ
 5   2   xx   いいいいいい
 6   3   xx   うううううう
 7   4   xx   ええええええ
 ・
 ・
 
 >1行目も3行目もダブルクリックした際に表示させる
 これは、1列目も3列目も・・・ という意味ですか?
 
 だとしたら、
 
 >Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
 If Target.Column = 1 Or Target.Column = 3 Then
 
 
 このように Or演算子(OrとAndは、よく使われるので調べてみてください)
 を使うとよさそうですが・・・・。
 これ実は、1列目をダブルクリックした時でも
 1行目や2行目(私の表例では、データがない行)をダブルクリックした時でも
 プログラムは作動してしまいます。
 プログラムは データがある行ダブルクリックした時に作動させたいのですよね?
 実際には、もうちょっと適切な方法があると思いますが、
 とりあえず、
 
 If Target.Column = 1 Or Target.Column = 3 Then
 
 ダブルクリックされたセルが 1列目または、3列目 且つ 4行以上
 
 このIf文にTarget.Rowを使って上記のようにもう一つ条件を追加してみてください
 
 If Target.Column = 1 Or Target.Column = 3 Then  'ここに条件を追加
 Set Target = Cells(Target.Row, 1) 'クリックされたセルの1列目のセル
 Worksheets("Sheet2").Activate
 Worksheets("Sheet2").Range("B2").Value = Target.Value
 Cancel = True
 End If
 
 後は、このようにしておけばよさそうですが、検討してみてください
 
 >文字(例:【佐藤太郎】、【鈴木次郎】)をクリックした際に
 クリックされたA列(1列)のセルがわかりますから、
 Target.Offset(0,2).Value
 
 で3列目のセルの値が取り出せます
 
 
 Offsetプロパティを調べてみてください
 
 |  |