![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
「タイトル+本文」という形でのエクセルデータ(他DBから変換したもの)があります。1タイトルが終わり、続けてそれぞれの「タイトル+本文」が50組ぐらいあり、そのまま印刷する場合は、各々長さがバラバラなので各用紙にまたがって印刷されてしまいます。改ページを手動で設定して印刷する方法もあるのですが、量が多いのと今後も別のデータを取り込んだとき再び設定する必要があるので、何とか特定文字をキーに改ページ印刷を自動化できないかと色々方法を探しています。エクセル2000を使用しています。同じような経験をお持ちの方が居られましたらお聞きしたいです。
No.3ベストアンサー
- 回答日時:
(1)セルの値全体で比較すれば良い時
#2のやり方
(2)先頭から何文字目かの定位置
If Cells(i, "B") = "xx" Then ----->
If Mid(Cells(i,"B"),3,2)="XX" then
3文字目から2文字がXXなら
(3)セルの文字列の中のどこかに含まれているか探す時
p=InStr(Cells(i,"B"),"xx")
If p=0 then
(含まれない時)
Else
(含まれる時)
End If
Mid関数のご説明に加えて(3)の例も教えて頂きましてありがとうございました。これから(1)~(3)のパターンをケースに応じて使い分けていこうと思います。
No.4
- 回答日時:
#1です。
#2さんのサンプルで解決でしょうが、、、
A列内の ほげほげ を含むセルを探して改ページを挿入するサンプルマクロを書いてみました。
Sub Test()
Dim r As Range, fr, fa As String
Application.ScreenUpdating = False
With ActiveSheet
Set r = .Range("A1:A" & .Range("A65536").End(xlUp).Row)
Set fr = r.Find("ほげほげ", LookAt:=xlPart)
If Not fr Is Nothing Then
fa = fr.Address
Do
If fr.Address <> "$A$1" Then .HPageBreaks.Add Before:=fr
Set fr = r.FindNext(fr)
Loop While Not fr Is Nothing And fa <> fr.Address
End If
End With
End Sub
ちょっとおせっかいですが、#2さんの例でxxを含むものを探す場合、
If Cells(i, "B") = "xx" Then を
If Cells(i, "A") Like "*xx*" Then
でも良いかと思います。
色々なマクロがあるのだなと奥の深さを痛感するとともに参考になります。おせっかいだなんてとんでもありません、私の方も手法の引き出しが増えるので感謝です。ありがとうございました。
No.2
- 回答日時:
VBAで良くやります。
下記ではB列に文字列「xx」が出てくるか、30行を越えると、そこの直前行まで1ページに印刷しています。
列はA,B列しかないサンプルになっています。
本番に合わせて変えるところは、シート名、30行、
スタート行、最右列、先頭検出文字列(xx)、その文字列のある列(本例ではB列)でしょうか。
XXはタイトルの1部であるなら、MID関数でタイトルの先頭から数文字を識別できるように切り出しましょう。
Sub test01()
Worksheets("sheet1").Activate
d = Range("a1").CurrentRegion.Rows.Count
MsgBox d
s = 1
For i = 2 To d
If i > s + 30-1 Then
Range(Cells(s, "A"), Cells(i - 1, "B")).PrintOut
s = i - 1
Else
If Cells(i, "B") = "xx" Then
Range(Cells(s, "A"), Cells(i - 1, "B")).PrintOut
s = i
End If
End If
Next i
Range(Cells(s, "A"), Cells(d, "B")).PrintOut
End Sub
少数例(百数十行)でテスト済み。
この回答への補足
VBの構文まで丁寧につけて頂きましてありがとうございます。列は1列のみのデータでしたので、Cellsはひとつだけにすればよいのでしょうか。Mid関数の定義の仕方がよくわからなかったので、 "*xx*" として試してみようと思います。(プリンタが職場に1台しかなくなかなか試せないのですが)
imogasiさんのようにVBが記述できる人にはあこがれてしまいます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセル2013「次のページ数に合わせて印刷」が小さすぎる 9 2023/03/28 10:18
- Excel(エクセル) 【マクロ】webアドレスにて指定されたCSVファイル【excelソフト表示】を印刷する件 1 2023/02/15 01:52
- PDF 2つのPDFを重ねる方法はありますか? 4 2023/01/30 14:04
- Excel(エクセル) エクセルの印刷範囲をページ単位で可変にする方法 3 2022/05/23 13:04
- Excel(エクセル) エクセルVBAで複数のシート印刷設定 1 2022/09/07 12:03
- UNIX・Linux テキストファイルをページ番号付きでコマンドラインから印刷したい 1 2023/02/22 12:47
- Excel(エクセル) Excelであるシートだけ印刷できない 1 2022/04/01 09:04
- その他(パソコン・スマホ・電化製品) Webページ印刷時にヘッダー・フッターをつけたい 1 2022/04/25 21:35
- プリンタ・スキャナー エプソン EW-452Aの自動両面印刷やり方が分かりません 1 2022/09/30 21:25
- Excel(エクセル) エクセルのマクロで複数シートを両面印刷するには? 2 2022/12/08 23:23
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelデータをコピペして、ペー...
-
スプレッドシート、Excelでの数...
-
エクセルの関数について教えて...
-
スプレッドシートで使う数式を...
-
Microsoft Officeの中古は信用...
-
エクセルで会社の従業員のデー...
-
Excelで50個のセルに同じ文字を...
-
エクセルの表で1年間の曜日を...
-
エクセルでの特別な文字を上に...
-
エクセルで不等号記号(≠)が上に...
-
エクセルでB列でフィルターをか...
-
エクセルでセルに標準で入力さ...
-
Excelで、項目の種類ごとにカウ...
-
【マクロ】アクティブセルにブ...
-
EXCELの質問です 119から足した...
-
【マクロ】アクティブセルの、...
-
【マクロ】アクティブセルの行...
-
エクセルの空欄をつめて、次の...
-
Excelの数式について教えてくだ...
-
非表示列の再表示に失敗
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルVBA、別ブックへ転記す...
-
エクセルでの作業計算方法について
-
時間によってファイル名が変わ...
-
【関数】適切な文字数の数字を...
-
Excelについて教えてください
-
エクセル初心者です 関数の入れ...
-
【マクロ】ファイル名の変更に...
-
UNIQUE関数が使えないバージョ...
-
エクセルの計算
-
【関数】先頭だけにある、半角...
-
Excelで、決まった行を繰り返し...
-
Excelでセルの値が同じか...
-
LOOKUP関数を使えばいいのでし...
-
Excel
-
はがきについて。
-
エクセルの条件付き書式につい...
-
エクセルのデーターが2か月前の...
-
エクセル②
-
エクセルで「-0.0」と表示さ...
-
Microsoft1Officeの互換ソフト...
おすすめ情報