指示されたセル範囲をコピーして別シートへ値を貼り付けるには?

Question 5306 拙著「Excel VBA そのまま使える実用マクロ 500連発」 Previous Next
詳細は こちら サンプルNo.315 ◆ 環境・・ Excel 2003 & Windows XP

いつも助けてもらって、ありがとうございます。 質問はコピーのループです。
シート1の B11:B60 に1組の名簿、B61:B110 に2組の名簿、B111:B160 に3組の名簿 が入っています。
シート1の A1に 1 から 5 の数字を自分で入れてボタンを押すと、 A1で選択した組の名簿の値
のみがシート2の B11:B60 にコピーされるように したいのです。
一組だけは出来るのですが…。 よろしくお願いします。
Answer   Copyright (C) 2007.6.10 永井善王
拙著 「Excel VBA そのまま使える実用マクロ 500連発」 を お求めいただき、ありがとうございます。
315番は 「セル範囲をコピーして全て貼り付けする」 と題するサンプルですね。

「一組だけは出来るのですが…。」と仰るのは、下記回答マクロの下から 3行目と2行目にあるコピー貼り付けのコードに相当する部分ができたということですね。
そして、知りたいことは、右図のような [ボタン]がクリックされたら、A1セルの値を判定してコピーするセル範囲を決定し、それをコピーして Sheet2へ貼り付けるための下記のようなコードですね。
Sub 指示されたセル範囲をコピーして別シートへ値を貼り付ける()
    If Range("A1").Value = 1 Then
        セル範囲 = "B11:B60"
        GoTo コピー貼り付けする
    ElseIf Range("A1").Value = 2 Then
        セル範囲 = "B61:B110"
        GoTo コピー貼り付けする
    ElseIf Range("A1").Value = 3 Then
        セル範囲 = "B111:B160"
        GoTo コピー貼り付けする
    End If
    MsgBox "A1セルの値が不正です。", ,"すぐマク"
    Exit Sub

コピー貼り付けする:
    Range(セル範囲).Copy                                              'コピーする
    Worksheets("Sheet2").Range("B11").PasteSpecial Paste:=xlPasteValues
                                                                    '値を貼り付け
End Sub

このマクロを [ボタン]に登録して完成させます。

【参考】
・「値
のみ」の意味ですが、コピー範囲には数式が存在するが、貼り付け先には数式を貼り付けないで値だけを貼り
 付けたいということですか? もし、そうであるならば、もうひと工夫、必要になります。

 クリップボードを経由せずに値だけをコピー貼り付けしたいが? etc.

サンプルブックのダウンロードは ここをクリック  (YNxv99119_Copy.xls 50KB)
※ 一旦、ブックをハードディスクに保存し、後で改めて開いてから実行してください。

 

Excel VBA Macro