特定のページにジャンプする(Microsoft Excel)
印刷時に16ページを必要とする大きなワークシートがあるとします。ワークシート内で作業しているときに、5ページなどの特定のページにジャンプする方法があるかどうか疑問に思うかもしれません。
Wordユーザーは、Word内で[移動]ダイアログボックスを使用してさまざまなページにジャンプできることを知っていますが、Excelにはそのような機能はありません。ただし、問題に取り組む方法はいくつかあります。
1つの方法は、ページの上部に表示されるセルを選択することです。
(たとえば、5ページの左上に表示されるセル。)次に、Page05などのセルの名前を定義できます。ワークシートのページごとにこれを行うと、Excel内の機能を使用してそれらの名前にジャンプできます。
これを行う別の方法は、改ページプレビューモードを使用することです。 (改ページプレビューに切り替えるには、[表示] | [改ページプレビュー]を選択します。)次に、改ページの場所を確認し、目的のページのセルを選択して、通常の表示に戻ります。
特定のページにジャンプできるマクロを作成することもできますが、思ったほど簡単ではありません。その理由は、ページの開始位置と終了位置を変更する可能性のあるハードページブレークの使用の可能性に関係しています。ただし、次のマクロでうまくいく場合があります。ユーザーにページ番号の入力を求め、入力したページの左上のセルを選択します。
Sub GotoPageBreak() Dim iPages As Integer Dim wks As Worksheet Dim iPage As Integer Dim iVertPgs As Integer Dim iHorPgs As Integer Dim iHP As Integer Dim iVP As Integer Dim iCol As Integer Dim lRow As Long Dim sPrtArea As String Dim sPrompt As String Dim sTitle As String Set wks = ActiveSheet iPages = ExecuteExcel4Macro("Get.Document(50)") iVertPgs = wks.VPageBreaks.Count + 1 iHorPgs = wks.HPageBreaks.Count + 1 sPrtArea = wks.PageSetup.PrintArea sPrompt = "Enter a page number (1 through " sPrompt = sPrompt & Trim(Str(iPages)) & ") " sTitle = "Enter Page Number" iPage = InputBox(Prompt:=sPrompt, Title:=sTitle) If wks.PageSetup.Order = xlDownThenOver Then iVP = Int((iPage - 1) / iHorPgs) iHP = ((iPage - 1) Mod iHorPgs) Else iHP = Int((iPage - 1) / iVertPgs) iVP = ((iPage - 1) Mod iVertPgs) End If If iVP = 0 Then If sPrtArea = "" Then iCol = 1 Else iCol = wks.Range(sPrtArea).Cells(1).Column End If Else iCol = wks.VPageBreaks(iVP).Location.Column End If If iHP = 0 Then If sPrtArea = "" Then lRow = 1 Else lRow = wks.Range(sPrtArea).Cells(1).Row End If Else lRow = wks.HPageBreaks(iHP).Location.Row End If wks.Cells(lRow, iCol).Select Set wks = Nothing End Sub
注:
このページ(または_ExcelTips_サイトの他のページ)で説明されているマクロの使用方法を知りたい場合は、役立つ情報を含む特別なページを用意しました。
_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。
このヒント(5823)は、Microsoft Excel 97、2000、2002、および2003に適用されます。