印刷範囲を設定するとエラーが出るが?

Question 21.2 Previous Next
ワークシート上に貼りつけた、コマンドボタンをクリックすることで印刷範囲を設定し印刷したいと考え、以下のコードを記述しました。
Private Sub cmdPrint_Click()
    Dim intSeitoSuu As Integer  '生徒数取得のための変数
生徒数の取得
    intSeitoSuu = Range("a7")   'セルA7の値を取得
生徒数による印刷範囲の場合分け
    Select Case intSeitoSuu
        Case 1 To 40
            ActiveSheet.PageSetup.PrintArea = "$A$11:$ah$50"
        Case 41 To 80
            ActiveSheet.PageSetup.PrintArea = "$A$11:$ah$90"
        Case 81 To 120
            ActiveSheet.PageSetup.PrintArea = "$A$11:ah$130"
    End Select
End Sub
記を実行したときに、次のエラーメッセージがでます。 "PageSetupクラスのPrintAreaプロパティを設定できません"
確認すると ActiveSheet.PageSetup.PrintArea = "$A$11:$ah$50" でエラーとなっています。
エクセル97を使用しています。よろしくお願いします。
Answer   Copyright (C) 1999.7.27 永井善王
ご質問に書かれているマクロコードを、Excelブックに貼り付けて、早速、試してみました。
テスト結果としては、私のPCでは異常なく動きました。 私のPC環境は、
  1) PC9821ノート型(Windows95,Excel95) + ネットワークで接続されたプリンター
  2) DOS/V(Windows98,Excel2000) + Canon BJF200 直結プリンター の 2とおりです。

あなたが「ワークシート上に貼りつけたコマンドボタン」とは、印刷範囲を設定したいワークシート上のことなのか、あるいは、別のワークシート上なのかが、はっきり分かりません。
もし、別のワークシート上であるなら、マクロコードに「ActiveSheet.PageSetup」と書いたのですから、印刷範囲を設定するワークシートをアクティブにしておく必要があります。
つまり、次のようなコードを先に書いておかねばなりません。
          Sheets("Sheet1").Select

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

【注意事項】 プリンターが関係するマクロは、パソコンに、そのプリンターが正しくインストールされていない状態で実行すると、エラーが出ることがあります。

 

Excel VBA Macro