
「タイトル+本文」という形でのエクセルデータ(他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のVBAで複数のシートを追...
-
勤怠表について ABS、TEXT関数...
-
【Officer360?Officer365?の...
-
Excelに貼ったXのURLのリンク...
-
Excelで4択問題を作成したい
-
エクセルについて
-
エクセル
-
グループごとの個数をカウント...
-
エクセル GROUPBY関数について...
-
グループごとの人数のカウント
-
グループごとの人数のカウント
-
エクセルシートの見出しの文字...
-
Amazonでマイクロソフトオフィ...
-
エクセルの複雑なシフト表から...
-
エクセルの関数について
-
【マクロ】実行時エラー '424':...
-
ページが変なふうに切れる
-
エクセル ドロップダウンリスト...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
9月17日でサービス終了らし...
-
エクセル
-
【マクロ】WEBシステムから保存...
-
エクセルの循環参照、?
-
エクセル ドロップダウンリスト...
-
エクセルのdatedif関数を使って...
-
特定のセルだけ結果がおかしい...
-
【マクロ】A列にある、日付(本...
-
【マクロ】EXCELで読込したCSV...
-
【マクロ】アクティブセルの時...
-
【エクセル】期限アラートについて
-
iPhoneのExcelアプリで、別のシ...
-
【関数】同じ関数なのに、エラ...
-
Excelの新しい空白のブックを開...
-
【マクロ】3行に上から下に並...
-
【マクロ】宣言は、何のために...
-
VBA チェックボックスをオーバ...
-
Excelについての質問です 並べ...
-
【マクロ】アクティブセルの2...
-
【関数】不規則な文章から●●-●●...
おすすめ情報