- ベストアンサー
EXCEL200の印刷プレビューについて
OSはWindows2000の環境です。 EXCEL2000を使用しています。 EXCELで、印刷プレビューをした時に作業しているページを最初に表示することはできますか? WORDでは、作業しているページが表示するのですが、EXCELでは1ページ目が表示します。 1つのシートにデータが2000行ほどあります。 作業としては、データが増えていくので、自分で指定したページが最初に表示するようになるといいのです。 いちお、印刷範囲設定をすればなるのですが、 もっと簡単になる方法があればうれしいのです。 よろしくお願いします。
- みんなの回答 (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)
2003tenn様 まず、ご質問から。 >すべてを印刷することも可能ですか? それは、そのページのみを表示することであって、ユーザー設定済みの印刷範囲は変更をしていません。 もし、印刷範囲がクリアされた状態ですと、印刷範囲は、カーソルの置いてあるセルまでが、印刷範囲となります。 逆に、印刷範囲とカーソルでは、印刷範囲が優先されてしまいますので、もしも、印刷範囲よりも、先にカーソルを置くと、印刷範囲の最終ページしか出てきません。 もしも、新たに印刷範囲を越えたデータを加えた場合は、 メニューのファイル-[印刷範囲]-[印刷範囲のクリア]で、一旦、範囲を解除して、再び、印刷プレビューをクリックすれば、その範囲までが、印刷範囲となります。 >通常の印刷プレビューも出来るのでしょうか? 印刷プレビューボタンのみに作用しています。もし、全体のプレビューをご覧になりたいときは、 メニューのファイル-[印刷]-[印刷プレビュー]を選ぶと、その全てが最初から見られます。 今回のままの設定は、登録したブックにしか適用できません。 一旦、次の書き込みの説明のように設定すれば、後は、再び、そのブックを開ければ、そのまま使えます。 今回のマクロは、何度か試験してみましたが、2000行の先にあるページでも、時間的なストレスを感じません。ただ、専門的になりますが、クラス設定させるようなレベルのマクロやアドインとの競合や、オートメーション・オブジェクトとしてExcelを使用する場合については考慮されていません。 そのブックを開けたまま、他のブックに対しては、印刷プレビューボタンを押しても、そのページだけ表示するという機能は働かないようにしてあります。 全ての新規ブックまで適用するのは、個人用マクロブックの登録をしますが、設定する場所を換えたりしますので、内容を変えないといけません。(現在のところ、そこまで考えていません。) //次のNoに続く
- Wendy02
- ベストアンサー率57% (3570/6232)
>いちお、印刷範囲設定をすればなるのですが、 >もっと簡単になる方法があればうれしいのです。 VBAでの設定でしかないはずです。 今、試作で作った段階では、プレビューで、アクティブセルのページをプレビューすることは出来ます。ただし、現在の試作段階では、縦方向の行に対する改ページしか数えません。また、そのまま印刷しようとすれば、そのページのみになってしまいます。 もう少し、チェックする必要はありますが、それでも、良ければ、公開します。
お礼
早速の回答ありがとうございます。 公開お願いしますm(__)m データが縦方向なので、横方向の改ページに対応してなくても大丈夫です。 更に、そのままの印刷でそのページのみになるのは、逆にうれしいことです。ありがとうございます。 ひとつ質問があります。 すべてを印刷することも可能ですか? 通常の印刷プレビューも出来るのでしょうか? VBAの操作の指導もよろしくお願いします。
お礼
お礼が遅くなりましたm(__)m 操作してみました。 私の希望通りになりました。 とても助かります。 ありがとうございました。