|
こんにちは
>>> If Target.Cells.Count > 1 Then
>>複数セル選択時ですか?
こちらが聞いてるのですが?
なぜ、複数セルにしてるのでしょうか?
複数セル「A1:D4」を選択すると処理が続行されて、
>Intersect(Target, Range("D4:F4"))
を通過して、「ActiveCell」=「A1」に「ListBox1.Value」がセットされちゃいます。
それでいいのでしょうか?
選択した複数セルそれぞれに別処理するなら勿論コード変更は必要ですし、
>Intersect(Target, Range("D4:F4"))
で取得出来る、「D4:F4」に属するセルだけを処理対象にするコードも必要です。
>★.Parentとはヘルプ見ましたがよくわかりません
親オブジェクトで、「ActiveCell」のあるシートの事です。
もし、別シートのセルに値をセットするなら、
>Set s = .Parent
を
>Set s = WorkSheets("Sheet1")
のようにします。
>> Set r = s.Range(s.Range("AG2"), s.Range("AG2").End(xlDown))
> ↑AM最終列でなくていいのですか
リストにセットしたデータで行位置を取得するだけです。
>> i = ListBox1.ListIndex + 1
リストの一番目が選択されてると「ListIndex」は「0」なのでプラス1します。
>> s.Range("E6").Value = r(i, 2)
>> s.Range("E7").Value = r(i, 3)
>> s.Range("E8").Value = r(i, 4)
>> s.Range("G6").Value = r(i, 5)
>> s.Range("G7").Value = r(i, 6)
>> s.Range("G8").Value = r(i, 7)
> ↑★この意味は
rはリストにセットしたデータなので、それの「i」番目(行目)で、横に「2〜7」列目
のデータっていう意味です。
|
|