|
おはようございます。
>名簿を作成しており、それをわかりやすいようフォームを作成しました。
>
>以下のコードで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プロパティを調べてみてください
|
|