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: 』の定数だけで、両方に対応できます。 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
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 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
【住所録】シートの、印刷欄に○をつけた宛名を【ラベル】シートに印刷します。○はダブルクリックで付けてり消したりします。 【住所録】シート
【ラベル】シート
Private Sub Worksheet_BeforeDoubleClick(ByVal Target
As Range, Cancel As Boolean) |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
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)標準モジュールにあります。 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||