| すぐマク YNxv991 | Home | Search | Contents | Gallery | Introduction | Service | Support | What's New! |
| 異なるシート間で範囲指定してコピーして貼り付けるには? |
|
|
|||
|
上記のマクロの60行目を "Sheet1" に変えると、50行目と同一シート内になりますから、エラーは出ませんね。これを "Sheet2" に変えてから実行すると、「Rangeメソッドが失敗」のエラーが出てしまいます。 このエラーを解消するためには、あなたのマクロの60行目の直前で、Sheet2をアクティブにしましょう。(下記52行目参照) また、あなたは、範囲指定に変数を使いたいとのことで、この点はすでにできているかと思いますが、下記にまとめておきました。 参考にしてください。
'-----------------------------------------------------------------------------------------
Sub 異なるシート間で範囲指定してコピーして貼り付ける()
10 Dim cpy As Range
20 Dim pst As Range
30 '
40 Sheets("Sheet2").Range("D1:F1").Clear '※1、2 クリアしておく
42 x = 1 '※3 左上セルの行番号
44 y = 1 '※3 右下セルの行番号
46 Worksheets("Sheet1").Activate '※4 シートをアクティブにする
50 Set cpy = Worksheets("Sheet1").Range(Cells(x, 1), Cells(y, 3)) '※3
52 Worksheets("Sheet2").Activate '※2
60 Set pst = Worksheets("Sheet2").Range(Cells(x, 4), Cells(y, 6)) '※3
70 pst.Value = cpy.Value '貼付範囲の値をコピー範囲の値と等しくする
End Sub
'-----------------------------------------------------------------------------------------
<コメント>
※1 このコードは動作確認用につき不可欠ではない
※2 Sheet2には貼り付けるシート名を記入
※3 1にはセルの行番号を記入
※4 Sheet1にはコピーするシート名を記入
他の方法としては、「Macro」のページの「コピー」に
「クリッブボードを経由せずにコピーして貼り付ける」 とか、いろいろ掲載してあります。どうぞ、ゆっくり見てみてください。サンプルブックのダウンロードは ここをクリック (YNxv991_kotonaru.xls 56KB) ※ 一旦、ブックをハードディスクに保存し、後で改めて開いてから実行してください。 |
| http://www.geocities.jp/happy_ngi/ | Home | Contents | Gallery | Introduction | Service | Support | What's New! |