こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

エクセル2003のVBAについて

次のコードのように、初めにクリックしたセルに、次にクリックしたセルの内容をコピーするVBAを書いたのですが、コピー先の列を、複数指定する方法がわかりません。

たとえば、C~O列(3~15)のように指定できればと思っています。

このようなことは可能でしょうか?

ご教授いただけます方、よろしくお願い申し上げます。

--------------------------------------------------
Dim FrstCell As Range
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Target.MergeCells = False And Target.Count > 2 Then Exit Sub
On Error Resume Next '想定しないエラーを無視

If Target.Cells(1) = "" Then
If Target.Column <> 3 Then Exit Sub 'C列 コピー先
Set FrstCell = Target.Cells(1)
Else
If Target.Column <> 18 Then Exit Sub 'R列 コピー元
Target.Copy FrstCell.MergeArea
End If

On Error GoTo 0 'エラートラップ終了

End Sub

投稿日時 - 2009-11-26 21:41:01

QNo.5478498

すぐに回答ほしいです

質問者が選んだベストアンサー

こんばんは。

>たとえば、C~O列(3~15)のように指定できればと思っています。

If Target.Column <> 3 Then Exit Sub 'C列 コピー先
    ↓
If Intersect(Target, Range("C1:O1").EntireColumn) Is Nothing Then Exit Sub 'C列 コピー先

このように書き換えればよいと思います。

投稿日時 - 2009-11-27 00:28:08

お礼

できました!完璧です!ご回答りがとうございました!

投稿日時 - 2009-11-27 10:08:04

ANo.2

このQ&Aは役に立ちましたか?

3人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

普通に考えれば
Copy メソッドでコピー元のセルを指定して
PasteSpecial メソッドで範囲指定すればいいのでは。
と、思いますが。

投稿日時 - 2009-11-26 21:54:05

あなたにオススメの質問