Clickイベントプロシージャでコピー貼り付けするとエラーになるが?

Question 86.2   Previous Next
はじめまして。 VBA初心者です。 ツールのマクロの実行で処理を行っていたのですが、コマンドボタンを使用したくて、内容を丸々コピーしてみたのですが、コマンドボタンを使用すると処理が止まってしまいます。 「rangeクラスのselectメソッドが失敗しました。」 となります。
マクロの実行で動いて、コマンドボタンで動かないのはなぜですか? よろしくお願いします。

コマンドボタンの場合
Private Sub CommandButton1_Click()
    Dim i As Integer, num As Integer
    num = InputBox("何回?")
    For i = 1 To num
        Sheets("sheet1").Select
        Range("A" & i).Select
        Application.CutCopyMode = False
        Selection.Copy
        Sheets("sheet2").Select
        Range("B" & i).Select
        ActiveSheet.Paste
    Next i
End Sub
マクロの実行の場合
Sub otameshi()
    Dim i As Integer, num As Integer
    num = InputBox("何回?")
    For i = 1 To num
        Sheets("sheet1").Select
        Range("A" & i).Select
        Application.CutCopyMode = False
        Selection.Copy
        Sheets("sheet2").Select
        Range("B" & i).Select
        ActiveSheet.Paste
    Next i
End Sub
Answer   Copyright (C) 2007.12.27 永井善王
sheet1に作成した CommandButton1_Clickイベントプロシージャで、 sheet2のセルを操作したいならば、下から4行目のコード Range("B" & i).Select
Sheets("sheet2").Range("B" & i).Select に修正して、操作対象をはっきりさせる必要があります。

 

Excel VBA Macro