あなたの映画力を試せる!POPLETA映画検定(無料) >>

1行目で改ページ、2行目で改ページ、・・・
をしたい場合、現在はデータ量も少ないことからそれぞれの行に
改ページを挿入していますが([挿入]-[改ページ])、
今回大量のデータを扱うことになりました。
マクロなどで処理することは出来るでしょうか。
よろしくお願いいたします。

このQ&Aに関連する最新のQ&A

A 回答 (3件)

ANo.2です



手順はあっております。
では少々変更をお願いします。

With ActiveSheet
.ResetAllPageBreaks
For Each c In Range("A2:A500")
.HPageBreaks.Add Before:=c
Next
End With

これで
2行目から500行目までガシガシ改ページが入るはず...
    • good
    • 2
この回答へのお礼

ありがとうございました。
完璧です^^。

お礼日時:2006/10/16 09:59

こんにちは



マクロつくってみました
With ActiveSheet
.ResetAllPageBreaks
' 範囲がわかっている場合
' For Each c In Range("A2:A500")
'
' A列2行~データがはいっている行まで
For Each c In Range("A2", Range("A65536").End(xlUp))
.HPageBreaks.Add Before:=c
Next
End With

この回答への補足

ご回答ありがとうございます。
上記マクロを貼り付けて実行してみましたが、
エラーが出てしまいます。
Sub 改ページマクロ()
With ActiveSheet
.ResetAllPageBreaks
' 範囲がわかっている場合
' For Each c In Range("A2:A500")
'
' A列2行~データがはいっている行まで
For Each c In Range("A2", Range("A65536").End(xlUp))
.HPageBreaks.Add Before:=c
Next
End With
End Sub
これでよいのでしょうか?。
マクロ超初心者で申し訳ありませんがご教授下さい。

補足日時:2006/10/14 13:27
    • good
    • 0

印刷する紙のサイズが決まっているなら、1行で改ページされるように


余白設定してしまうのはいかがでしょうか。
プレビューの画面で、1行しか入らないように余白を調整すれば、
マクロとか使わなくても自動で改ページが設定できると思うのですが。
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qエクセルの改ページを行ごとに自動挿入するには?

1000行以上ある表に対して50行ごとに改ページ
したいのですが、行の幅が微妙にまちまちなので
46~53行の間で微妙にずれてしまいます。

任意の固定された行数で改ページを一気に自動挿入
する方法があれば教えてください。今は改ページプレ
ビューを見て微調整をして微妙なズレを直しています。

Aベストアンサー

#1 のmisatoannaさんの内容にかぶってしまいますが、

>行の幅が微妙にまちまちなので46~53行の間で微妙にずれてしまいます。

50行以上に「自動改ページ」がつけられる場合はよいのですが、それ以下の場合は、「手動改ページ」を入れると、2行なり3行だけのページが出来てしまいますが、それでも良いのですか?2つのマクロがあります。

1つは、手動改ページを入れるマクロで、もう1つは、それが正しく入っているか調べるマクロです。

'--------------------------------------
Sub PageBreak_enter()
'手動改ページを入れるマクロ
Dim Rng As Range, i As Long
With ActiveSheet
'マクロを実行する前に、なるべく、印刷範囲はユーザーで設定してください。
 If .PageSetup.PrintArea = "" Then
   .PageSetup.PrintArea = .UsedRange.Address
End If
  .ResetAllPageBreaks
Set Rng = Range(.PageSetup.PrintArea)
For i = 50 To Rng.Rows.Count Step 50
   .Cells(i + 1, "A").PageBreak = xlPageBreakManual
Next i
End With
 Set Rng = Nothing
End Sub

'--------------------------------------
Sub CheckMPageBreak()
'正しく、50行目に改ページが入っているか調べるマクロ
Dim TotalPage As Integer
Dim p As Long
Dim i As Integer
 TotalPage = Application.ExecuteExcel4Macro("COLUMNS(GET.DOCUMENT(64))")
For i = 1 To TotalPage - 1
 p = Application.ExecuteExcel4Macro("INDEX(GET.DOCUMENT(64),1, " & i & ")")
 If p Mod 50 <> 1 Then
   MsgBox p & " ページ目が、違います。", 64
 End If
Next i
End Sub
'--------------------------------------

#1 のmisatoannaさんの内容にかぶってしまいますが、

>行の幅が微妙にまちまちなので46~53行の間で微妙にずれてしまいます。

50行以上に「自動改ページ」がつけられる場合はよいのですが、それ以下の場合は、「手動改ページ」を入れると、2行なり3行だけのページが出来てしまいますが、それでも良いのですか?2つのマクロがあります。

1つは、手動改ページを入れるマクロで、もう1つは、それが正しく入っているか調べるマクロです。

'--------------------------------------
Sub PageBreak_e...続きを読む

QExcelで50行毎に改ページを入れたい

表題を1行入れて1ページに49行となるように改ページを入れたいのですが、どのようなマクロを組めばできますか?
また、行は49行の倍数と成るように印刷範囲を設定しして列は1ページに収まるように設定するにはどうしたらよいか併せて教えていただければ助かります。

例えば、349行 F列まである場合は、縦が7枚×横が1ページとなるように自動で設定したいです。

Aベストアンサー

Sub Macro1()

Dim i As Long
Dim j As Long
Dim k As Long

i = 50
j = ActiveSheet.Cells.SpecialCells(xlLastCell).Row


For k = i + 1 To j Step i
Range("G" & k).Select
ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=ActiveCell
ActiveWindow.SelectedSheets.VPageBreaks.Add Before:=ActiveCell
Next k
End Sub

Qエクセルで一行毎、一枚づつ自動でプリントアウトしたいです。

エクセルで一行毎、一枚づつ自動でプリントアウトしたいです。

     A列   B列
5行目  品名   数量 
6行目  商品A   1
7行目  商品B  45
8行目  商品C   6
9行目  商品D   0
10行目 商品E   8
11行目 商品F   0
 :    :    :
 :    :    :

現在は
Sheet1に上のような表があり
Sheet2に製品明細の雛型がたくさん作ってあり、
品名と数量をSheet1から参照し入力された状態になっており
数量が0のもの以外を選択して手動で印刷しています。

今後は
製品明細の雛型は1つで
製品明細を1行毎を1枚に印刷し
数量が0のものは印刷しないように自動でできるようにしたいです。
どのようなマクロを作れば良いのでしょうか?

Aベストアンサー

参考にしてください。最初は添付の様な簡単なシートで実験してみて意味がわかったら
実務のファイルに応用してください。
データがたくさんあると沢山印刷されて大変でしょうから。
Sub ボタン1_Click()
For i = 2 To Range("A" & Rows.Count).End(xlUp).Row
If Range("B" & i).Value > 0 Then
Sheets("Sheet2").Range("B4").Value = Range("A" & i).Value
Sheets("Sheet2").Range("B5").Value = Range("B" & i).Value
Sheets("Sheet2").PrintPreview
End If
Next
End Sub

For~Nect でA列のデータの数だけ繰り返す
If文で B列が 0以上の場合に実施
Sheet2のB4セルに A列、B5セルにB列を入れる
Sheet2の印刷プレビュー と云ったところです。

うまく出来たら
PrintPreview をPrintOut にしてください

参考にしてください。最初は添付の様な簡単なシートで実験してみて意味がわかったら
実務のファイルに応用してください。
データがたくさんあると沢山印刷されて大変でしょうから。
Sub ボタン1_Click()
For i = 2 To Range("A" & Rows.Count).End(xlUp).Row
If Range("B" & i).Value > 0 Then
Sheets("Sheet2").Range("B4").Value = Range("A" & i).Value
Sheets("Sheet2").Range("B5").Value = Range("B" & i).Value
Sheets("Sheet2").PrintPreview
End If
Next
End Sub

For~Nect でA列のデー...続きを読む

QEXCELで1行の内容を1枚の紙に印刷したい(緊急)

EXCELで作った名簿があります。
左から、氏名・住所・電話番号といった列があります。

この名簿で、1人分のデータを1枚の紙にそれぞれ印刷したいです。
例えばA41枚に、氏名:山田太郎さん 住所:東京都…
電話番号:000-000-0000
次の紙に、氏名:山田花子さん 住所:大阪府…
電話番号:111-111-1111
というふうにしたいです。

EXCELの機能、またはフリーウェア等でうまくできる方法を教えてください。
よろしくおねがいします。

Aベストアンサー

Excelをお持ちならばWordをお持ちではないでしょうか?Wordの「差込印刷」を使えばお望みの形になるかと思います。

http://www.miyazaki-cci.or.jp/nichinan/pc/case9.html

もしくは、Excel用のツールもあるようですが、未確認です。
http://www.vector.co.jp/soft/win95/writing/se340957.html

あとは、自力でマクロ(VBA)組むか...

QEXCEL 改ページ自動挿入方法を教えてください。

EXCELで「改ページ」をデータが変る都度 自動的に挿入する方法はありますか?
ハンドでいちいち設定するのが非常に手間です。
ご存知の方、是非教えてください。
例 <データ>
111
111 ←この行で改ページ自動挿入
222
222 ←この行で改ページ自動挿入
333 ←この行で改ページ自動挿入
444 ←この行で改ページ自動挿入

Aベストアンサー

関数式では、セルの挿入、削除、改行の挿入、削除などは出来ないようです。
VBAになれば、オフラインバッチ処理の定番である、「キー
(例えば所属部)が変われば、改ページする」のは,しょっちゅう行われることです。サンプルを載せます。
Sub test01()
ma = Mid(Cells(1, 1), 1, 1)
For i = 1 To 10
  n = Cells(i, 1).Value
  a = Mid(n, 1, 1)
 If a <> ma Then
  Worksheets("sheet1").Rows(i).PageBreak = True
 End If
p01:
ma = a
Next i
End Sub
マクロの記録はやや、ややこしいですが骨子は上記の通り。

QExcelで12行ずつ印刷するには

発注番号・商品名・価格等の入ったデータが数百件あります。
これを10件ずつ、
また、1行目の項目名を行タイトルとし、
10件目の下にもう1行「小計」欄を入れる必要がありますので、
1枚の紙(A4)に全部で12行印刷したいのです。

前任者は行タイトルを設定し、
12行目は手動で一つ一つ行の挿入をしていたそうです。

なんとか簡略化する方法はないでしょうか?
バージョンは2000です。
よろしくお願いします。

Aベストアンサー

以下の方法は如何でしょうか。

1.A,B列をクリック⇒右クリック⇒挿入
2.B1に=ROUNDUP((ROW()-1)/10,0)を入力し、下方向にコピー
3.A1をクリック⇒データ⇒集計⇒グロープ基準をB列⇒集計フィールドをB列と価格をチェック⇒グロープ毎に改ページ挿入と集計行を挿入⇒OK
4.C列を非表示
5.行タイトルは、ファイル⇒ページ設定⇒シート⇒行タイトルを$1:$1として下さい。

因みに現データシートで実施せず、別シートのコピー後、実施される事をお勧めします。

QExcelの改ページ 同シート内で複数の改ページの設定

同じシート内で多くの改ページを設定しなければならない場合
1ページ毎に設定していかないといけないのでしょうか?
それとも改ページしたいデータで並び替えて、同データのある行で改ページを分割していくのは可能でしょうか?

たとえばA列に上から111112223333344455555とある場合に自動的に1と2の間、2と3の間、3と4の間、4と5の間にそれぞれ自動的に改ページを入れたいのですが・・・

Aベストアンサー

マクロなら入力している値が変わったところに「改ページ」を挿入することが可能です。
「マクロはNG」なら手作業で1カ所ずつ挿入する必要があります。「プレビュー」→「改ページプレビュー」を利用すれば、改ページ位置の変更を、多少、楽に操作できるかもしれませんが、行数が多いならこの方法でも大変だと思います。

A列の値が変わったら改ページを挿入するマクロのサンプルは以下になります。
以下のマクロをALT+F11でVBE画面を開き、左上のVBA Projectでシート名を右クリックし「挿入」→「標準モジュール」で表示される画面に貼り付けて下さい。マクロの実行はワークシート画面に戻ってALT+F8でマクロ一覧を開き、マクロ名を選択して「実行」ボタンです。

Sub Macro4()
Const col As String = "A" '改ページを判断するデータの列名
Dim idx As Long
Dim sv
sv = Cells(1, col).Value
For idx = 1 To Cells(65536, col).End(xlUp).Row
  If Cells(idx, col).Value <> sv Then
    ActiveSheet.HPageBreaks.Add Before:=Rows(idx)
    sv = Cells(idx, col).Value
  End If
Next idx
End Sub

でも実際のシートはそんなに単純ではないと思います。質問文に具体的な指示がないので、100%期待に添えるとは思いませんが、「ご参考まで」にどうぞ。
なおマクロの実行結果は「UNDO」で戻せませんので試しに実行するなら、シートは必ず保存しておいて、元に戻せるようにしておいてください。

マクロなら入力している値が変わったところに「改ページ」を挿入することが可能です。
「マクロはNG」なら手作業で1カ所ずつ挿入する必要があります。「プレビュー」→「改ページプレビュー」を利用すれば、改ページ位置の変更を、多少、楽に操作できるかもしれませんが、行数が多いならこの方法でも大変だと思います。

A列の値が変わったら改ページを挿入するマクロのサンプルは以下になります。
以下のマクロをALT+F11でVBE画面を開き、左上のVBA Projectでシート名を右クリックし「挿入」→「標準モジュー...続きを読む

Qexcelからexcelへの差し込み印刷

お世話になります。

excelでwordへの差し込み印刷をよく利用するのですが、
同様に、
excelのデータをexcelに流し込んで印刷する方法はありますでしょうか。

excelの名簿のデータを
excelの表のフォーマットに流し込んで
1人づつ印刷したいのですが。

お分かりの方いらっしゃいました教えてください。
どうぞ宜しくお願い致します。

Aベストアンサー

イメージはわかるが、エクセルに差込印刷の機能はありません。
ワードなどと違ってA.X氏1人分書類シート作成、B印刷、Aのシートををy氏分のデータでシート内容(セル)を置き換え、印刷、の繰り返しをします。
ーー
例データ Sheet1 A1;D3
連番氏名住所品物
1山田 三郎東京都江東区かばん
2植田 健横浜市港北区帽子
A列はこのたび連番を振りました。
Sheet2   に送り状の書式を体裁よく作ります。
H1セル(どこでも良いが、下記のVLOOKUPの式は変わる)

送り状

住所X
氏名Y

品物Z

上記の品をお送り申し上げます。
ご査収ください

以上
Xの場所のセルに =VLOOKUP($H$1,Sheet1!$A$1:$D$3,2,FALSE)
Yの場所のセルに =VLOOKUP($H$1,Sheet1!$A$1:$D$3,3,FALSE)
Zの場所のセルに =VLOOKUP($H$1,Sheet1!$A$1:$D$3,4,FALSE)

---
結果

送り状

住所山田 三郎
氏名東京都江東区

品物かばん

上記の品をお送り申し上げます。
ご査収ください

以上
ここで
VBE画面で標準モジュールに
Sub test01()
For i = 1 To 2 '人数分
Range("H1") = i
Range("A1:G20").PrintOut '印刷範囲は各人同じとする
Next i
End Sub
を張り付け、実行する。
山田、植田分の紙が2枚印刷されました。
これは質問者はVBAの経験も無いでしょうと、最低限にしてあります。
VBAを勉強してください。
別ブックにある名簿を対象などは複雑になるので避けています。

イメージはわかるが、エクセルに差込印刷の機能はありません。
ワードなどと違ってA.X氏1人分書類シート作成、B印刷、Aのシートををy氏分のデータでシート内容(セル)を置き換え、印刷、の繰り返しをします。
ーー
例データ Sheet1 A1;D3
連番氏名住所品物
1山田 三郎東京都江東区かばん
2植田 健横浜市港北区帽子
A列はこのたび連番を振りました。
Sheet2   に送り状の書式を体裁よく作ります。
H1セル(どこでも良いが、下記のVLOOKUPの式は変わる)

送り状

住所X
氏名Y

品物Z

...続きを読む

Qエクセルで改ページを連続挿入方法

エクセルで、任意の場所に改ページを一括で挿入できる方法はないでしょうか?
入れたい場所をctrlキーを押しながら選択をし、改ページの挿入をしてみたのですが全く出来ませんでした。
どうぞよろしくお願いします。

Aベストアンサー

CTRLを押しながら、マウスで複数行を指定する。
下記を実行する。
標準モジュールに下記コードをコピペ。
下記を実行する。
ーーー
VBAコード
Sub test01()
For Each cl In Selection
ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=cl
Next
End Sub
これで指定した行の上に改ページ線が惹かれました。
上記はほとんどがマクロの記録で出る。

QVLOOKUP関数で空白を選択すると「0」と表示されるのですが

VLOOKUP関数で他シートのアドレス帳から住所名前等を引き出し、別シートで宛名ラベルを作っています。
この時、何も記入されていないシートをVLOOKUPで読み込んだ場合に、宛名に「0」が表示されてしまうのですが、これを表示させない方法はどうしたらよいのでしょうか?

また以前は「0」では無く、「N#A(記憶が曖昧ですが)」のような表示がされていたんですが、どうして変ったんでしょううか?

よろしくお願いします。

Aベストアンサー

検索値が見つからない場合は #N/A エラーになります。
検索値が見つかったが、参照する列が空白の場合は 0 になります。

ISERROR や ISNA 等を使ってエラーの場合は空白にすれば、#N/A は表示されなくなります。
例)=IF(ISERROR(VLOOKUP($A2,検索範囲,2,0)),"",VLOOKUP($A2,検索範囲,2,0))

この状態で ツール-オプション-表示タブの「ゼロ値」を外せば #N/A も 0 も見えなくなります。
ただし、検索結果以外の 0 も見えなくなりますのでそれがまずいようなら、

=IF(ISERROR(VLOOKUP($A1,検索範囲,2,0)),"",IF(VLOOKUP($A1,検索範囲,2,0)=0,"",VLOOKUP($A1,検索範囲,2,0)))

のような感じにすると#N/A も 0 も見えなくなります。


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング