• ベストアンサー

EXCEL200の印刷プレビューについて

OSはWindows2000の環境です。 EXCEL2000を使用しています。 EXCELで、印刷プレビューをした時に作業しているページを最初に表示することはできますか? WORDでは、作業しているページが表示するのですが、EXCELでは1ページ目が表示します。 1つのシートにデータが2000行ほどあります。 作業としては、データが増えていくので、自分で指定したページが最初に表示するようになるといいのです。 いちお、印刷範囲設定をすればなるのですが、 もっと簡単になる方法があればうれしいのです。 よろしくお願いします。

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

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.3

   No2.の続き// //登録の仕方// Alt+F11 を押すと、画面が切り替わります。 (もう一度、押すと、元の画面に戻ります) 左側に、プロジェクトという窓があり、「ThisWorkBook」という名称が出ているはずです。それを、ダブルクリックすると、白い画面が出てきます。 (Excelのウィンドウの一番上には、Microsoft Visual Basic ブック名-[ThisWorkbook(コード)]と出ているはずです) そうしたら、真中の白い画面に、以下を貼り付けます。 貼り付けたら、元の画面に戻って、保存終了します。次に、そのブックを開けると、印刷プレビューその機能は変わっているはずです。 '------------------------------------------------------ '<ThisWorkbook> Option Explicit Public WithEvents myBtn As CommandBarButton Private Sub myBtn_Click(ByVal Ctrl As Office.CommandBarButton, _              CancelDefault As Boolean) 'DateTime : 05/05/18 13:50 'Author : Wendy02 in Goo No.1393217  Dim ActiveRowNum As Long  Dim myPrintArea As String  Dim PageNum As Integer  Dim OnePage As Integer  Dim ActivePage As Integer  Dim LimtPageRow As Long  '  If ActiveWorkbook.Name <> ThisWorkbook.Name Then Exit Sub  With ActiveSheet  ActiveRowNum = ActiveCell.Row  If .PageSetup.PrintArea <> "" Then   myPrintArea = .PageSetup.PrintArea   Else   .PageSetup.PrintArea = Range("A1", ActiveCell).Address   myPrintArea = .PageSetup.PrintArea  End If  '  LimtPageRow = Range(myPrintArea).Offset(Range(myPrintArea).Rows.Count _  - 1).Row  PageNum = ExecuteExcel4Macro("COLUMNS(GET.DOCUMENT(64))")  OnePage = Application.ExecuteExcel4Macro( _    "INDEX(GET.DOCUMENT(64),1," & 1 & ")")  If ActiveRowNum < OnePage Then   ActivePage = 1   Else   If ActiveRowNum <= LimtPageRow Then   ActivePage = Application.ExecuteExcel4Macro( _    "MATCH(" & ActiveRowNum & ",GET.DOCUMENT(64),1 )") + 1   Else   ActivePage = PageNum   End If  End If  .PrintOut From:=ActivePage, to:=ActivePage, Preview:=True  End With  CancelDefault = True End Sub ' Private Sub Workbook_Open()  Set myBtn = Application.CommandBars.FindControl(, 109) End Sub '------------------------------------------------------

その他の回答 (2)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

2003tenn様 まず、ご質問から。 >すべてを印刷することも可能ですか? それは、そのページのみを表示することであって、ユーザー設定済みの印刷範囲は変更をしていません。 もし、印刷範囲がクリアされた状態ですと、印刷範囲は、カーソルの置いてあるセルまでが、印刷範囲となります。 逆に、印刷範囲とカーソルでは、印刷範囲が優先されてしまいますので、もしも、印刷範囲よりも、先にカーソルを置くと、印刷範囲の最終ページしか出てきません。 もしも、新たに印刷範囲を越えたデータを加えた場合は、 メニューのファイル-[印刷範囲]-[印刷範囲のクリア]で、一旦、範囲を解除して、再び、印刷プレビューをクリックすれば、その範囲までが、印刷範囲となります。 >通常の印刷プレビューも出来るのでしょうか? 印刷プレビューボタンのみに作用しています。もし、全体のプレビューをご覧になりたいときは、 メニューのファイル-[印刷]-[印刷プレビュー]を選ぶと、その全てが最初から見られます。 今回のままの設定は、登録したブックにしか適用できません。 一旦、次の書き込みの説明のように設定すれば、後は、再び、そのブックを開ければ、そのまま使えます。 今回のマクロは、何度か試験してみましたが、2000行の先にあるページでも、時間的なストレスを感じません。ただ、専門的になりますが、クラス設定させるようなレベルのマクロやアドインとの競合や、オートメーション・オブジェクトとしてExcelを使用する場合については考慮されていません。 そのブックを開けたまま、他のブックに対しては、印刷プレビューボタンを押しても、そのページだけ表示するという機能は働かないようにしてあります。 全ての新規ブックまで適用するのは、個人用マクロブックの登録をしますが、設定する場所を換えたりしますので、内容を変えないといけません。(現在のところ、そこまで考えていません。) //次のNoに続く

2003tenn
質問者

お礼

お礼が遅くなりましたm(__)m 操作してみました。 私の希望通りになりました。 とても助かります。 ありがとうございました。

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.1

>いちお、印刷範囲設定をすればなるのですが、 >もっと簡単になる方法があればうれしいのです。 VBAでの設定でしかないはずです。 今、試作で作った段階では、プレビューで、アクティブセルのページをプレビューすることは出来ます。ただし、現在の試作段階では、縦方向の行に対する改ページしか数えません。また、そのまま印刷しようとすれば、そのページのみになってしまいます。 もう少し、チェックする必要はありますが、それでも、良ければ、公開します。

2003tenn
質問者

お礼

早速の回答ありがとうございます。 公開お願いしますm(__)m データが縦方向なので、横方向の改ページに対応してなくても大丈夫です。 更に、そのままの印刷でそのページのみになるのは、逆にうれしいことです。ありがとうございます。 ひとつ質問があります。 すべてを印刷することも可能ですか? 通常の印刷プレビューも出来るのでしょうか? VBAの操作の指導もよろしくお願いします。