Excelノート 9-2 印刷

HOME  検索  索引  もくじ  関数目次  前ページへ  次ページへ 

タイトル欄のアドレスは、エクセルファンクラブの該当する頁へのリンク先です。
詳しい事は、こちらの
お願いをご覧になってください。

21 1シートが1ページに印刷されるように印刷範囲を設定するには?
22 マクロの自動記録で、プリンタ名を取得するには
23 Excel2000とExcel97で違うプリンタ名の指定を、両方で対応させるには
24 1シート1ページを複数枚数印刷する際、1ページから順番にページをフッターに記入したい
25 シートの住所録から、宛名ラベルを印刷するには
26 偶数・奇数ページ毎に分けて印刷するには?
27 あらかじめ複数の印刷範囲を設定し、任意の設定を選択して印刷するには
28 リストから選択して、ヘッダーフッターを設定するには
29 選択したセルの値のみ、印刷しない方法は?
30 ページごとに印刷範囲、余白を設定して印刷するには?
31 印刷プレビュー後の、各ページのページ数、行・列範囲を取得するには?
32 シートの住所録から、宛名ラベルを印刷するには2
33 コメントを印刷するには?
34 奇数ページには下、偶数ページには上にページ数を入れたい

21 1シートが1ページに印刷されるように印刷範囲を設定するには?
http://www.ae.wakwak.com/~efc21/cgi-bin/wwwlng.cgi?print+200103/01030315.txt
  「1シートが1ページに印刷されるように印刷範囲を設定するには?」 【VBAラウンジ】
Excel97、Excel2000 共通
 メニューの「ファイル」−「ページ設定」−「ページ」の拡大縮小印刷を「横1×縦1ページに印刷」にする               
Sub Test
 With ActiveSheet.PageSetup  
'アクティブシートの設定
  .PrintArea = "$A$1:$A$4"
   '印刷範囲の設定
  .Zoom = False
          '拡大縮小率
  .FitToPagesWide = 1      
'横を1頁に
  .FitToPagesTall = 1
       '縦を1頁に  
  End With 
End Sub

  このコードの使い方は、マクロの使い方(1)標準モジュールにあります。
22 マクロの自動記録で、プリンタ名を取得するには
Excel97、Excel2000 共通
 1. 【ツール】【マクロ】【新しいマクロの記録】で、マクロの保存先を作業中のブックにしOKすると、記録終了ボタンがシートに表示されます。
 2. 【ファイル】【印刷】でプリンタの名前を変更し、OKしないで閉じます。(Excel97の場合は×ボタンで閉じます)
 3. 記録終了ボタンを押し、マクロの自動記録を終了します。
   Alt+F11を押すと、記録したコードが表示されます。
23 Excel2000とExcel97で違うプリンタ名の指定を、両方で対応させるには
http://www.keep-on.com/~excelyou/2000lng4/200007/00070209.txt
  「プリンタの設定を自動でかえる方法」 【VBAラウンジ】
通常、Application.ActivePrinter = "プリンタ名" 等でプリンタを指定しますが、
Excelのバージョンによって次のようにコードの書き方が違います。
 Excel97〜97SR2 , 2000SR1 ‥‥‥ "EPSON MJ-3000C on LPTn:"
 Excel2000(未SR1)     ‥‥‥ "LPTn: の EPSON MJ-3000C"
  http://www.microsoft.com/japan/support/kb/articles/J049/8/18.htm

両方のバージョンで同じコードを使いたい場合、下記の関数を利用すると、『〜 on LPTn: 』の定数だけで、両方に対応できます。
(ネットワークプリンターについては?です)。
 Sub test()
  Application.ActivePrinter = 変換ActPRT("EPSON MJ-3000C on LPT1:")
 End Sub
 Function 変換ActPRT(ByVal strPrinter名 As String) As String
  Dim strPrinterWk As String
  Dim strPrinterPort As String
              ' [LPTn:]
  Dim strPrinterName As String
  Dim i As Integer
  If (InStr(Application.ActivePrinter, "の") = 0) Then 
'[の]を検索
   ' [〜 on LPTn:]形式なのでそのまま
   変換ActPRT = strPrinter名
  Else
   ' [LPTn: の 〜]形式なので受け取ったプリンタ名を変換する
   strPrinterWk = RTrim(strPrinter名) '末尾の空白を削除(安全策)
   i = Len(strPrinterWk)
   strPrinterName = Left(strPrinterWk, (i - 9))     
'[プリンタ名]を抽出
   strPrinterPort = Mid(strPrinterWk, (i - 4), 5)
      '[LPTn:]を抽出
   ' [の]の前後は半角スペース
   変換ActPRT = strPrinterPort & " の " & strPrinterName
  End If
 End Function

  このコードの使い方は、マクロの使い方(1)標準モジュールにあります。

24 1シート1ページを複数枚数印刷する際、1ページから順番にページをフッターに記入したい
http://cgi.fuji.ne.jp/~fj2094/cgi-bin1/wwwlng.cgi?print+200103/01030151.txt
  「印刷時にページ番号をふるにはどうすればよいでしょうか?」 【編集ラウンジ】
Sub 部数印刷()
 On Error GoTo ErLine
 ActiveSheet.PrintPreview
 x% = Application.InputBox("印刷部数を入力してください", Type:=1)
 If x% = False Then Exit Sub
  For i% = 1 To x%
   With ActiveSheet
    .PageSetup.CenterFooter = "No - " & i%
    ActiveSheet.PrintPreview
    '.PrintOut Copies:=1
   End With
  Next i%
ErLine:
End Sub

  このコードの使い方は、マクロの使い方(1)標準モジュールにあります。
25 シートの住所録から、宛名ラベルを印刷するには
http://cgi.fuji.ne.jp/~fj2094/cgi-bin5/wwwlng.cgi?print+200104/01040078.txt
  「エクセルで作った住所録を住所ラベルにしたい 【その他ラウンジ】」
http://www.ae.wakwak.com/~efc21/cgi-bin/wwwlng.cgi?print+200104/01040268.txt
  「宛名印刷をしたいのですが・・・」 【VBAラウンジ】
Excelで作ったデータをWord文書に差し込み印刷できます。
Wordのヘルプで、トピックの検索、キーワードの入力欄に宛名ラベルと入力し、検索してください
Sheet1 (住所録のシート)
    A       B       C
1  郵便番号   住所     氏名
2  111-2222  東京都1  田中太郎
3  111-2223  東京都2  田中次郎
4  111-2224  東京都3  田中三郎
5  111-2225  東京都4  田中四郎
******************************************
Sheet2 (宛名ラベルのシート) 
     A       B      C
1                 111-2222
2                 東京都1
3                 田中太郎
4
5   111-2223         111-2224
6   東京都2          東京都3
7   田中次郎         田中三郎
8
9   111-2225
10   東京都4
11   田中四郎
**************************************************************

Sub test1()
'印刷開始位置をNOで指定します
 Dim WS1 As Worksheet, WS2 As Worksheet
 Dim LastRow As Long, i As Integer, j As Integer
 Dim My行 As Integer, My列 As Integer, ラベル位置 As Variant
 Set WS1 = Worksheets("Sheet1")
 Set WS2 = Worksheets("Sheet2")
 ラベル位置 = Application.InputBox("開始位置を入力してね。", Type:=1)
 If (VarType(ラベル位置) = vbBoolean) Then Exit Sub
 If (ラベル位置 < 1) Or (ラベル位置 > 10) Then Exit Sub
 LastRow = WS1.Cells(Rows.Count, 1).End(xlUp).Row
 With WS2
  .Range("A1:C19").ClearContents
  For i = 2 To LastRow
   My列 = Choose(ラベル位置, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3)
   My行 = Choose(ラベル位置, 1, 1, 5, 5, 9, 9, 13, 13, 17, 17)
   .Cells(My行, My列).Value = WS1.Cells(i, 1).Value
   '〒
   .Cells(My行 + 1, My列).Value = WS1.Cells(i, 2).Value
 '住所
   .Cells(My行 + 2, My列).Value = WS1.Cells(i, 3).Value
 '氏名
   ラベル位置 = ラベル位置 + 1
   If ラベル位置 > 10 Then
    .PrintOut
    .Range("A1:C19").ClearContents
    ラベル位置 = 1
   End If
  Next
  If Application.CountA(Range("A1:C19")) <> 0 Then
   .PrintOut
   .Range("A1:C19").ClearContents
  End If
 End With
End Sub

  このコードの使い方は、マクロの使い方(1)標準モジュールにあります。
Sub test2()   'ラベル印刷開始位置(A列またはC列)を選択してから実行します。
 Dim r As Integer, c As Integer, i As Integer
 Dim LastRow1 As Long, LastRow2 As Long
 Dim WS1 As Worksheet, WS2 As Worksheet
 Set WS1 = Worksheets("Sheet1")
 Set WS2 = Worksheets("Sheet2")
 r = Selection.Row
 c = Selection.Column
 LastRow1 = WS1.Cells(Rows.Count, 1).End(xlUp).Row
 With WS2
  For i = 2 To LastRow1
   .Cells(r, c) = WS1.Cells(i, 1)
   .Cells(r + 1, c) = WS1.Cells(i, 2)
   .Cells(r + 2, c) = WS1.Cells(i, 3)
   c = c + 2
   If c = 5 Then
    c = 1
    r = r + 4
   End If
   If r > 20 Then
    LastRow2 = .Cells(Rows.Count, 1).End(xlUp).Row
    .PageSetup.PrintArea = "$A$1:$C$" & LastRow2
    .PrintOut
    .Range("A:C").ClearContents
    r = 1
   End If
  Next
  LastRow2 = .Cells(Rows.Count, 1).End(xlUp).Row
  .PageSetup.PrintArea = "$A$1:$C$" & LastRow2
  .PrintOut
  .Range("A:C").ClearContents
 End With
End Sub

  このコードの使い方は、マクロの使い方(1)標準モジュールにあります。
26 偶数・奇数ページ毎に分けて印刷するには?
http://cgi.fuji.ne.jp/~fj2094/cgi-bin1/wwwlng.cgi?print+200106/01060016.txt
  「偶数・奇数ページ毎に分けて印刷するのは?」 【編集ラウンジ】
1シート全ての、奇数または偶数ページを印刷します。
 Sub miko_test()
  Dim p As String, Page As Integer, LastPage As Integer, i As Integer, j As Integer
  p = "1)奇数ページ" & Chr(10) & "2)偶数ページ"
  Page = Application.InputBox(Prompt:="印刷するのは奇数ページですか? 偶数ページですか?" & Chr(10) & p, Title:="印刷ページ指定",   Default:=1)
  LastPage = (ActiveSheet.HPageBreaks.Count + 1) * (ActiveSheet.VPageBreaks.Count + 1)
  If Page = 1 Then
   j = 1
  ElseIf Page = 2 Then
   j = 2
  Else
   Exit Sub
  End If
  For i = j To LastPage Step 2
   ActiveSheet.PrintOut From:=i, To:=i
  Next
 End Sub

  このコードの使い方は、マクロの使い方(1)標準モジュールにあります。
開始、終了ページを指定して、奇数または偶数ページを印刷します。
 Sub miko_test2()
  Dim p As String, Page As Integer, LastPage As Integer, i As Integer, j As Integer, kaishiPage As Integer
  p = "1)奇数ページ" & Chr(10) & "2)偶数ページ"
  Page = Application.InputBox(Prompt:="印刷するのは奇数ページですか? 偶数ページですか?" & Chr(10) & p, Title:="印刷ページ指定",   Default:=1)
  If Page = 1 Then
   kaishiPage = Application.InputBox(Prompt:="印刷開始ページを入力してください?", Title:="印刷開始ページ指定", Default:=1)
   j = 1
  ElseIf Page = 2 Then
   kaishiPage = Application.InputBox(Prompt:="印刷開始ページを入力してください?", Title:="印刷開始ページ指定", Default:=2)
   j = 2
  Else
   Exit Sub
  End If
  LastPage = Application.InputBox(Prompt:="印刷終了ページを入力してください?", Title:="印刷終了ページ指定")
  For i = kaishiPage To LastPage Step 2
   ActiveSheet.PrintOut From:=i, To:=i
  Next
 End Sub
  このコードの使い方は、マクロの使い方(1)標準モジュールにあります。
27 あらかじめ複数の印刷範囲を設定し、任意の設定を選択して印刷するには
Sub miko_test()
 Dim hyou As Integer, aa As String
 
'エラー処理(実行エラーが発生した場合はラベルTRAP:に)
 On Error GoTo TRAP
 
'インプットボックスから表を選択
 aa = "1) A表" & Chr(10) & "2) B表" & Chr(10) & "3) C表" & Chr(10) & "4) D表"
 hyou = InputBox(prompt:="何番の表を印刷しますか?" & Chr(10) & aa, Title:="印刷範囲選択", Default:=1)
 
'選択した番号から印刷範囲を設定
 With Worksheets("Sheet1")
  Select Case hyou
   Case 1
    .PageSetup.PrintArea = "A1:J10"
   Case 2
    .PageSetup.PrintArea = "A11:J20"
   Case 3
    .PageSetup.PrintArea = "A21:J30"
   Case 4
    .PageSetup.PrintArea = "A31:J40"
  End Select
  .PrintPreview                      
'プレビューで確認
  If MsgBox("印刷していいですか?", vbOKCancel + vbQuestion) = vbOK Then
   .PrintOut                       
'プリントアウト
  Else
   MsgBox "印刷が中止されました"
  End If
  .PageSetup.PrintArea = ""             
'印刷範囲をクリア
 End With
TRAP:
End Sub

  このコードの使い方は、マクロの使い方(1)標準モジュールにあります。
28 リストから選択して、ヘッダーフッターを設定するには
http://cgi.fuji.ne.jp/~fj2094/cgi-bin5/wwwlng.cgi?print+200110/01100083.txt
 独自のヘッダーフッターを作成するには?」 【その他ラウンジ】
Sub miko_test()
 Dim a As Integer, b As Integer, N(10) As String
 N(1) = "項目1"
 N(2) = "項目2"
 N(3) = "項目3"
 N(4) = "項目4"
 N(5) = "項目5"
 N(6) = "項目6"
 N(7) = "項目7"
 N(8) = "項目8"
 N(9) = "項目9"
 N(10) = "項目10"
 a = Application.InputBox(Prompt:="1:" & N(1) & " 2:" & N(2) & " 3:" & N(3) & _
                      " 4:" & N(4) & " 5:" & N(5) & Chr(10) & "6:" & N(6) & _
                      " 7:" & N(7) & " 8:" & N(8) & " 9:" & N(9) & " 10:" & N(10) & _
                      Chr(10) & Chr(10) & "項目番号を入力してください(1〜10)", Type:=1)
 b = Application.InputBox(Prompt:="1:ヘッダー(左) 2:ヘッダー(中央) 3:ヘッダー(右)" & _
                      Chr(10) & "4:フッター(左) 5:フッター(中央) 6:フッター(右)" & _
                      Chr(10) & Chr(10) & "設定する方の番号を入力してください(1または2)", Type:=1)
 With ActiveSheet.PageSetup
  Select Case b
   Case 1
    .LeftHeader = N(a)
   Case 2
    .CenterHeader = N(a)
   Case 3
    .RightHeader = N(a)
   Case 4
    .LeftFooter = N(a)
   Case 5
    .CenterFooter = N(a)
   Case 6
    .RightFooter = N(a)
  End Select
 End With
End Sub

  このコードの使い方は、マクロの使い方(1)標準モジュールにあります。
29 選択したセルの値のみ、印刷しない方法は?
文字色を白にする
選択したセルの値を一旦クリアしてから印刷し、印刷が終わったら元に戻します。
セルの塗りつぶしには対応していません。

Sub test()
 Dim N As String, WS1 As Worksheet, c As Range
 Application.DisplayAlerts = False
       '警告を非表示
 
'セル以外を選択していた場合、処理しないで終わる
 If Not TypeName(Selection) = "Range" Then Exit Sub
 '選択しているシート名を変数に格納
 N = ActiveSheet.Name
 Set WS1 = Worksheets(N)
 With WS1                    
'選択しているシートについて
  .Copy Before:=Sheets(1)
          'シートごと左端にコピー
  .Activate                   
'コピー元のシートをアクティブに
  Selection.ClearContents          
'選択範囲をクリア
  .PrintOut                   
'プリントアウト
  For Each c In Selection          
'選択したセル全てを処理
   c = Sheets(1).Range(c.Address)    
'クリアした内容を、コピーしたシートから転記
  Next
 End With
 Worksheets(1).Delete
             'コピーしたシートをシートごと削除
 Application.DisplayAlerts = True       
'警告を再表示
End Sub

  このコードの使い方は、マクロの使い方(1)標準モジュールにあります。
30 ページごとに印刷範囲、余白を設定して印刷するには?
Sub test()
 Dim aa As Range, bb As Single
 On Error GoTo err1
Pro1:
 Set aa = Application.InputBox("印刷する範囲をドラッグして下さい", "セルの指定", Type:=8)
 bb = Application.InputBox(Prompt:="余白を入力してください。単位はcmです。", Type:=1)
 Application.ScreenUpdating = False '画面の動きを固定
 With ActiveSheet
  .PageSetup.PrintArea = aa.Address(False, False)
  With .PageSetup
   .LeftMargin = Application.CentimetersToPoints(bb) '左余白
   .RightMargin = Application.CentimetersToPoints(bb) '右余白
   .TopMargin = Application.CentimetersToPoints(bb) '上余白
   .BottomMargin = Application.CentimetersToPoints(bb) '下余白
  End With
  Application.ScreenUpdating = True '画面固定解除
  .PrintPreview '印刷プレビューで確認
  If MsgBox("印刷しますか?", vbYesNo) = vbYes Then .PrintOut Copies:=1
 End With
 If MsgBox("まだ印刷しますか?", vbYesNo) = vbYes Then GoTo Pro1
err1:
End Sub
  このコードの使い方は、マクロの使い方(1)標準モジュールにあります。
31 印刷プレビュー後の、各ページのページ数、行・列範囲を取得するには?
http://www.ae.wakwak.com/~efc21/cgi-bin/wwwlng.cgi?print+200207/02070426.txt 
 「1ページの印刷範囲とページ数を取得するには?」  【VBAラウンジ】
Sub 改ページ情報()
 Dim Lastpage As Long, Lastpage2 As Long, p As Integer
 Dim LastR As Long, LastC As Integer, i As Integer, j As Integer
 Dim Nrow As Long, NLrow As Long, Ncol As Integer, NLcol As Integer
 Application.ScreenUpdating = False
'画面の動きを固定
 '正しく改ページ位置を取得する為、一旦改ページプレビューにする
 ActiveWindow.View = xlPageBreakPreview
 '縦方向最終改ページ数取得
 Lastpage = ActiveSheet.HPageBreaks.Count
 '横方向最終改ページ数取得
 Lastpage2 = ActiveSheet.VPageBreaks.Count
 '入力済み最終行、最終列取得
 With ActiveSheet.UsedRange
  LastR = .Row + .Rows.Count - 1
  LastC = .Column + .Columns.Count - 1
 End With
 Ncol = 1
 p = 0
'ページ数カウント初期値
 '横方向改ページ分繰り返し
 For j = 1 To Lastpage2 + 1
  If j = Lastpage2 + 1 Then
   If Ncol > LastC Then Exit For
   NLcol = LastC
  Else
   NLcol = ActiveSheet.VPageBreaks(j).Location.Column - 1
  End If
  Nrow = 1
  '縦方向改ページ分繰り返し
  For i = 1 To Lastpage + 1
   If i = Lastpage + 1 Then
    If Nrow > LastR Then Exit For
    NLrow = LastR
   Else
    NLrow = ActiveSheet.HPageBreaks(i).Location.Row - 1
   End If
   p = p + 1
'ページ数カウント
   MsgBox p & " ページ目は " & Nrow & " 行 " & Ncol & " 列目から " _
          & NLrow & " 行 " & NLcol & " 列目になります"
   Nrow = NLrow + 1
  Next
  Ncol = NLcol + 1
 Next
 '改ページプレビュー、画面の固定を戻す
 ActiveWindow.View = xlNormalView
 Application.ScreenUpdating = True
End Sub
  このコードの使い方は、マクロの使い方(1)標準モジュールにあります。
32 シートの住所録から、宛名ラベルを印刷するには2
【住所録】シートの、印刷欄にをつけた宛名を【ラベル】シートに印刷します。はダブルクリックで付けてり消したりします。

【住所録】シート
  A B C D E F
1 印刷 郵便番号 住所(1行目) 住所(2行目) 氏 名(1行目) 氏 名(2行目)
2 111-2222 名古屋市千種区 5番地 ABCマンション11号 株式会社 ABC商事 田中 太郎 様
3 111-2223 名古屋市千種区 5番地 ABCマンション12号 株式会社 ABC商事 田中 太郎 様
4   111-2224 名古屋市千種区 5番地 ABCマンション13号 株式会社 ABC商事 田中 太郎 様

【ラベル】シート
  A B C D E F G
1              
2   111-2222       111-2223  
3   名古屋市千種区       名古屋市千種区  
4   555番地 ABCマンション11号       555番地 ABCマンション11号  
5              
6   株式会社 ABC商事       株式会社 ABC商事  
7   田中 太郎 様       田中 太郎 様  
8            

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Column <> 1 Then Exit Sub
Select Case Left(Target.Value, 1)
Case Is <> "○"
Target.Value = "○" & Target.Value
Target.Characters(1, 1).Font.ColorIndex = 3
Case "○"
Target.Value = Right(Target.Value, Len(Target.Value) - 1)
Target.Font.ColorIndex = 1
End Select
Cancel = True
End Sub
  このコードの使い方は、マクロの使い方(2)該当するシートのモジュールにあります。

Sub 宛名ラベル印刷()
Dim i As Long, j As Integer, k As Integer
Dim WS1 As Worksheet, WS2 As Worksheet
Set WS1 = Worksheets("住所録")
Set WS2 = Worksheets("ラベル")
WS1.Select
With WS2
If MsgBox("チェック欄に○を付けた宛名だけ印刷しますか?いいえを選ぶと全部印刷します。", vbYesNoCancel) = vbYes Then
.Cells.ClearContents
j = 2
k = 2
For i = 2 To Cells(Rows.Count, "B").End(xlUp).Row
If Cells(i, 1) = "○" Then
.Cells(j, k) = Cells(i, 2)
.Cells(j + 1, k) = Cells(i, 3)
.Cells(j + 2, k) = Cells(i, 4)
.Cells(j + 4, k) = Cells(i, 5)
.Cells(j + 5, k) = Cells(i, 6)
If k = 2 Then
k = 6
Else
k = 2
j = j + 9
End If
End If
Next
.PrintPreview
If MsgBox("印刷していいですか?", vbOKCancel + vbQuestion) = vbOK Then .PrintOut
Else
.Cells.ClearContents
j = 2
k = 2
For i = 2 To Cells(Rows.Count, "B").End(xlUp).Row
.Cells(j, k) = Cells(i, 2)
.Cells(j + 1, k) = Cells(i, 3)
.Cells(j + 2, k) = Cells(i, 4)
.Cells(j + 4, k) = Cells(i, 5)
.Cells(j + 5, k) = Cells(i, 6)
If k = 2 Then
k = 6
Else
k = 2
j = j + 9
End If

If j > 44 Then
.PrintPreview
If MsgBox("印刷していいですか?", vbOKCancel + vbQuestion) = vbOK Then .PrintOut
j = 2
End If
Next
End If
End With
End Sub
  このコードの使い方は、マクロの使い方(1)標準モジュールにあります。

33 コメントを印刷するには?
http://cgi.fuji.ne.jp/~fj2094/cgi-bin5/wwwlng.cgi?print+200305/03050025.txt
 「コメント入りで印刷をするのには?」
Excel97、Excel2000 共通
【ファイル】【ページ設定】【シート】で、【画面表示イメージ】にします。
 注意:印刷プレビューでの設定では、コメントの印刷設定はできません。
34 奇数ページには下、偶数ページには上にページ数を入れたい
http://cgi.fuji.ne.jp/~fj2094/cgi-bin5/wwwlng.cgi?print+200406/04060034.txt
 「上下にめくる様式にページを入れるには?」 【その他ラウンジ】
Sub miko_test4()
  Dim LastPage As Long, i As Long
  Dim P As Variant, Sp As Variant, Lp As Variant
  Application.ScreenUpdating = False 
'画面の動きを固定
  
'改ページを認識させる為に一旦プレビューする
  ActiveWindow.View = xlPageBreakPreview
  ActiveWindow.View = xlNormalView
  With ActiveSheet
    
'最終ページ数を取得
    LastPage = (.HPageBreaks.Count + 1) * (.VPageBreaks.Count + 1)
    Sp = Application.InputBox(Prompt:="印刷開始ページを入力してください", Default:=1, Type:=1)
    If (VarType(Sp) = vbBoolean) Then Exit Sub        
'キャンセル処理
    Lp = Application.InputBox(Prompt:="印刷終了ページを入力してください", Default:=LastPage, Type:=1)
    If (VarType(Lp) = vbBoolean) Then Exit Sub        
'キャンセル処理
    P = Application.InputBox(Prompt:="フッターに印刷する最初のページ数は、何ページにしますか?", Default:=1, Type:=1)
    If (VarType(P) = vbBoolean) Then Exit Sub         
'キャンセル処理
    For i = Sp To Lp
      With .PageSetup
        If i Mod 2 Then                                        
 '奇数ページ
          .CenterFooter = "&16− " & P & " −"   
 '文字サイズは16ポイント
          ActiveSheet.PrintOut From:=i, to:=i
          .CenterFooter = ""
        Else
          .CenterHeader = "&16− " & P & " −"    
'文字サイズは16ポイント
          ActiveSheet.PrintOut From:=i, to:=i
          .CenterHeader = ""
        End If
      End With
      P = P + 1
    Next
  End With
  Application.ScreenUpdating = True
End Sub
  このコードの使い方は、マクロの使い方(1)標準モジュールにあります。
 

HOME  検索  索引  もくじ  関数目次  前ページへ  次ページへ 

このページのTOPへ

inserted by FC2 system