![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
以前教えていただいたコードです。C列、D列、E列が全て共通の行を結合していきます。
For I = Cells(Rows.Count,"A").End(xlUp).Row To 2 Step -1
If Cells(I,"C") = Cells(I-1,"C) And_ ...以下D、E列についても同様に記述
Then
Application.DisplayAlerts = False
Range(Cells(I-1, "B"),Cells(I,"B")).Merge ...以下D、E列についても同様に記述
Application.DisplayAlerts = True
End If
Next I
この条件分岐の中で、「改ページをまたぐ時はセル結合をしない」という条件を加えたいです。
「HPageBreaksがある/ない」を判断させることはできますでしょうか。
よろしくお願いします。
No.1ベストアンサー
- 回答日時:
こんにちは
>改ページをまたぐ時はセル結合をしない~~
マクロ実行時には処理が可能ですが、その後、セルの高さが変わるような操作あるいはマクロを実行すると、結果的に「改ページをまたぐセル結合」になってしまう可能性もあると思いますが・・・?
それとも定型書式で改ページ位置は変わらないタイプのものなのでしょうか?
とりあえず、方法のみ。
>「HPageBreaksがある/ない」を判断させることはできますでしょうか
HPageBreaksは
Worksheet.HPageBreaks
で取得できます(複数)ので、結合時に各改ページにまたがっていないことを確認する処理を入れれば良いでしょう。
Worksheet.HPageBreaks.Count
で、改ページの箇所数がわかりますし、それぞれの改ページのセル位置は
Worksheet.HPageBreaks(i).Location.Address
で取得できます。
判断材料として行番号さえわかれば良さそうですので、AddressよりもLocation.Rowで取得した方が処理しやすいと思われます。
結合が、
>Range(Cells(I-1, "B"),Cells(I,"B")).Merge ...
・・・のように、必ず2つのセルを対象に行うようになっているのであるなら、上記の行番号と変数Iが一致していたら結合を行わないようにしておけば良いのではないでしょうか。
(全貌がわからないので、はっきりとはしませんが・・・)
ただし、上記の処理だけでは、既に(なんらかの理由で)改ページをまたぐセル結合がある場合に、それを解除したりすることはできません。(新たに生み出さないだけです)
上記を応用すれば、解除することも可能ではありますが・・・
回答いただき、ありがとうございました!
定型書式の意味するところが私の想像ですが、列幅・行高は変えませんので、定型書式と言っていいと思います。
参考になりました。ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 3つの条件を指定してVBAで行を削除したい 条件1:分類1が重複 条件2:分類2が重複 条件3:個数 6 2022/06/24 11:07
- Visual Basic(VBA) 列と行の名前(重複あり)が交差するセルに、データを入力したい 2 2022/06/25 22:42
- Visual Basic(VBA) VBA シート間の転記で、条件の追加コードの書き方について教えて下さい。 13 2023/02/26 09:31
- Visual Basic(VBA) 追記する列を増やしたい 2つのデータを検索・照合して元データにないデータを下記マクロで商品名を追記し 9 2022/10/05 10:50
- Visual Basic(VBA) vba 重複データ合算 5 2023/07/05 18:55
- Visual Basic(VBA) ExcelVBAのマクロについて。 9 2022/05/04 14:50
- Visual Basic(VBA) コード名シートA列と集計シートA列のコードが一致したら、コード名シートA5からk12の範囲をコピーし 1 2022/08/29 23:46
- Visual Basic(VBA) VBAで実行時エラー'424' オブジェクトが必要ですと出る 2 2022/10/07 09:25
- Visual Basic(VBA) excel VBA if文について 3 2022/03/27 17:42
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 6 2022/06/08 12:55
このQ&Aを見た人はこんなQ&Aも見ています
-
「環境が人を育てる」って本当?環境によって人格や生き方は本当に変わるのか
環境が人生に与える影響は実際どれほどのものなのか、専門家の田宮由美さんに伺った。
-
エクセル印刷で上下の結合セルが別ページにならない方法?
Excel(エクセル)
-
EXCELで特定のセルに表示された項目をヘッダーやフッターに出力するには
Excel(エクセル)
-
エクセルで、結合したセルが改ページにかかっても、罫線が印刷されるように
Excel(エクセル)
-
-
4
Excelの入力規則で2列表示したい
Excel(エクセル)
-
5
ワードで、複数ページにわたる結合したセルの表示
その他(Microsoft Office)
-
6
印刷時、改ページごとの下枠にのみ罫線を引きたい
Excel(エクセル)
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセル マクロ オートフィ...
-
[EXCEL]ボタン押す→時刻が表に...
-
【Excel関数】UNIQUE関数で"0"...
-
特定の文字がある行以外を削除...
-
excelのデータで色つき行の抽出...
-
Excel グラフのプロットからデ...
-
excel 小さすぎて見えないセル...
-
エクセルで特定の文字列が入っ...
-
結合されたセルをプルダウンの...
-
エクセルで昨日までの日付デー...
-
エクセル 上下で列幅を変えるには
-
EXCELマクロを使い、空白行では...
-
サイズの違うセル 並べ変え
-
エクセル マクロで数値が変っ...
-
EXCEL 「最後のセル」のリセット
-
EXCEL VBA マクロ 別シートの...
-
別シートに空白セルを詰めデー...
-
VBAで色の付いているセルの行削除
-
完全一致したら代入するマクロ...
-
エクセル マクロ等を利用した各...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで特定の文字列が入っ...
-
【Excel関数】UNIQUE関数で"0"...
-
エクセル マクロ オートフィ...
-
[EXCEL]ボタン押す→時刻が表に...
-
AのセルとB行を比較して、一致...
-
特定の文字がある行以外を削除...
-
エクセル 上下で列幅を変えるには
-
エクセル マクロで数値が変っ...
-
Excel グラフのプロットからデ...
-
excelのデータで色つき行の抽出...
-
結合されたセルをプルダウンの...
-
アクティブになっている行をマ...
-
VBAで色の付いているセルの行削除
-
セルの色によって条件文をつけ...
-
excel 小さすぎて見えないセル...
-
電話番号の入力方式が違うデー...
-
Excelでカタカナ・ひらがな・英...
-
エクセルVBA 最終行を選んで並...
-
EXCELマクロを使い、空白行では...
-
EXCELで最後の行を固定
おすすめ情報