[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『Range内で計算がしたい』(さっちゃん)
はじめまして。
マクロを使い始めて1年も経っていない初心者です。
現在、EXCELの改ページ挿入をマクロで設定しようとしています。
複数ページある為、Range内に計算式を入れたところ、
「'Range'メソッドは失敗しました:'Global'オブジェクト」
と出ました。
改ページ処理は、1ページ目と2ページ目のレイアウトが違うため、
1と2ページ目は固定値にしています。
3ページ目以降からは計算により、改ページ挿入をしたいのですが、
何が原因でエラーが出ているのかわかりません。
Range内では計算をすることが出来ないのでしょうか?
また、解決方法をご教授願います。
'改ページ処理
Private Sub PAGE_BREAKS()
Dim W As Worksheet Dim P As Long
Set W = ActiveSheet P = 0
'印刷範囲を設定 W.PageSetup.PrintArea = "A1:X65536"
'すべての改ページを解除 W.ResetAllPageBreaks
'lngPAGECNT数分、処理を繰り返す For P = 1 To lngPAGECNT
If P = 1 Then '1ページ目の場合 '改ページを追加(水平方向) W.HPageBreaks.Add Range("A32") Else If P = 2 Then '2ページ目の場合 '改ページを追加(水平方向) W.HPageBreaks.Add Range("A58") Else '3ページ目以降の場合 '改ページを追加(水平方向) W.HPageBreaks.Add Range("A & 83 + ((lngPAGECNT-3) * 26) & ") End If End If
Next P
End Sub
< 使用 Excel:Excel2013、使用 OS:Windows7 >
直接の回答ではありませんが・・・。
2013でしたら
>.PageSetup.PrintArea = "A1:X65536"
はまずくないですか? Cells.Rows.Count Cells.Columns.Count で行数や列数を取得できます。 マジックナンバーに頼らないコーディングに努めましょう。 (カリーニン) 2017/06/02(金) 12:05
全部、まともに読んでいませんが・・・
> W.HPageBreaks.Add Range("A & 83 + ((lngPAGECNT-3) * 26) & ")
W.HPageBreaks.Add Range("A" & (83 + (lngPAGECNT-3) * 26))
(半平太) 2017/06/02(金) 12:10
その部分、私も気になっていたので、後々調べようと思っていたところでした。
>Cells.Rows.Count >Cells.Columns.Count >で行数や列数を取得できます。
上記の方法でやってみます!
(さっちゃん) 2017/06/02(金) 13:12
やってみたところ、エラーがなくなりました!
大変、助かりました。
計算式が間違っていたのですね。。
これからは気をつけようと思います。
(さっちゃん) 2017/06/02(金) 13:14
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.