
VBAについて教えてください。
現在マクロを組んでおり行き詰まっています。
20行ごとに改ページの設定をするのに
Sheets("シート名").Rows(20).PageBreak=xlPageBreakManual
としています。
しかし、行のカウントをしたいのは1行目からではなく11行目からになります。
11行目から印刷設定をしており、11行目からカウントして20行ごとに改ページの設定をしたいのですが、どのようにすればよろしいのでしょうか?
自分で調べてもわからなかったので知恵を貸していただけると助かります。
No.7ベストアンサー
- 回答日時:
こちらも何か早とちりしてしまい申し訳ございません
こんなイメージです
よろしくお願いします
==============================
Dim i As Integer
Sheet1.ResetAllPageBreaks
ActiveWindow.View = xlPageBreakPreview
Sheet1.PageSetup.PrintArea = "A1:H100"
Sheet1.PageSetup.PrintTitleRows = "1:11"
For i = 11 To 100
If i Mod 20 = 0 Then
Sheet1.Rows(i).PageBreak = xlPageBreakManual
End If
Next
No.6
- 回答日時:
No5です。
いまだに、何をどのようにしたいのか不明のままですけれど・・・
>アウトラインを設定している行(閉じている時には行数が飛んでいるところ)
>に改ページが設定されてしまうのです。
それは、自動改ページになっていないからです。
固定指定の改ページが存在すれば、それは無視されずに改ページされます。
自動改ページになっていれば、非表示の行で改ページされることはありません。
(改ページプレビューで見てみればわかると思います)
と言っても、質問者様が何をしたいのかがわからないまま、いろいろ回答しても無駄だと思いますので、他の方にお任せします。
No.5
- 回答日時:
No1です。
補足を読みましたが・・・
『ユーザが適当にアウトラインを開いたり閉じたりしている時に、ある一定の間隔で改ページしたい』ってことでしょうか?
まさに、『それ、早く言ってよぉ~~!』ですね。
補足を読んでも、「表示されている19行ごとに改ページ」で良いのかどうかわかりませんけれど、仮にそうだとするなら、
『1行ずつ表示行をカウントして、19行になるごとに改ページを入れる』
ようにすればよいのではないでしょうか。
まぁ、表示19行ごとの改ページで良いのならば、VBAなど使わなくても、ページ設定で19行/1ページになるように設定しておくだけですみそうです。
これで、エクセルの自動改ページに任せておけば、VBAなんぞ不要になると思いますけれど・・
なんだか意味が違っていそうなので、コードは無駄になるので書きませんが。
ご回答ありがとうございます。
エクセルの自動改ページにて設定すると、アウトラインを閉じている時と開けている時では全く仕上がりが違うものになります。
閉じている時には閉じているページに改ページが入りこんでいるので、アウトラインを設定している行(閉じている時には行数が飛んでいるところ)に改ページが設定されてしまうのです。
なのでアウトラインを閉じていても開いていたも同じ行数で設定できないものかと思い質問させていただきました。
わかりにくい説明で本当申し訳ございません。
No.4
- 回答日時:
実はこれ解決されずにフェードアウトされちゃう系?
みんな一生懸命ヒントを書いてくれたのにそれは悲しいな( ;∀;)
返答が遅くなり申し訳ございません。別の仕事もやらなくてはいけないため昨日は他業務をしなくてはならず、こちらには手を付けられませんでした。また、初心者のためみなさんに教えて頂いたことを調べながらじっくり実践しております。そのためお時間かかってしまいますがフェードアウトはしません。不快にさせてしまい申し訳ございませんでした。
No.3
- 回答日時:
ループ処理は11から1ずつカウントアップ
ループの最後でループカウンターを20で除算した余りが0だったら改ページの処理を入れれば良いんですよね
If i Mod 20 = 0 Then
改ページ処理
End If
で行けるのでは
ご回答ありがとうございます。こちらの設定をすると11行目からという認識をされないのか?20行目までで改ページされてしまいます。
改ページ処理の部分は
Sheets("シート名").Rows(20).PageBreak=xlPageBreakManual
でよろしいでしょうか?
No.2
- 回答日時:
こんにちは。
Stepを使うとカウントしなくても大丈夫かと。
Sub testProc()
Dim i As Long
For i = 11 To 1000 Step 20
Sheets("シート名").Rows(i).PageBreak = xlPageBreakManual
Next
End Sub
ご回答ありがとうございます。
ためしにやってみたのですが、エラーメッセージ[Range クラスの PageBreak プロパティを設定できません。]と出てきてしまい動きませんでした。アウトラインを設定していることが原因でしょうか?説明不足で申し訳ございませんでした。
No.1
- 回答日時:
こんにちは
エクセルってことで良いのでしょうか?
>20行ごとに改ページの設定をするのに~~
ご提示のコードだと、19行目の下で改ページされていませんか?
行数をどう数えているのかはっきりしませんけれど・・
普通で考えれば、11行目が実質の1行目なら、「20行目ごと」は30、50、70・・行ということになります。
ですので、
.Rows(31).PageBreak=xlPageBreakManual
.Rows(51).PageBreak=xlPageBreakManual
・・・・
等となるようにしておけばよいのでは?
(ループ処理で行えば宜しいかと)
エクセルで大丈夫です。教えて頂いた方法でやってみたのですが、アウトラインの設定をしているのでアウトラインが開いている時は上手く動きましたが、閉じている時は細かく改ページされてしまいうまくいきませんでした。(閉じていても開いていても19行で改ページしたかったのです)
せっかくお答えいただいたのに申し訳ございません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教えるわが家の防犯対策術!
ホームセキュリティのプロが、家庭の防犯対策を真剣に考える 2組のご夫婦へ実際の防犯対策術をご紹介!どうすれば家と家族を守れるのかを教えます!
-
2つのVBAを一緒にしたら機能しなくなりました(エクセル)
Excel(エクセル)
-
この関数と同じ処理をVBAで行うにはどうしたら良いでしょうか? これは、1列の中に同じ値が複数存在し
Visual Basic(VBA)
-
フレーム内のオプションボタンの選択結果をセルに書き出したい。 図のような預金種目というフレームにオプ
Visual Basic(VBA)
-
4
マクロで行を追加、削除すると行位置がずれますが、解決方法はありませんか?。
Excel(エクセル)
-
5
エクセルはマクロを使用するのでパソコンに良くないので使用しないでと言われた。「なぜ?」
Excel(エクセル)
-
6
excelのマクロ実行でブロックされます。
Excel(エクセル)
-
7
エクセルVBAについて
Visual Basic(VBA)
-
8
マクロVBA 1シートをまとめる 閉じ方 初心者 SOS!
Visual Basic(VBA)
-
9
Countifよりも早く重複数をカウントする方法ありますか?
Excel(エクセル)
-
10
エクセルVBAについて
Visual Basic(VBA)
-
11
ExcelVBAで質問です。離れた二次元配列を一つにしたい
Visual Basic(VBA)
-
12
VBA 別ブックからの転記の高速化について VBA 別ブックからの転記の高速化についてご教授下さい。
Visual Basic(VBA)
-
13
Excel VBA で End Subのところで「型が一致しません」のエラーとなります。
Visual Basic(VBA)
-
14
ExcelVBA No.を自動連番で設定をしながらデータ入力をしたい
Visual Basic(VBA)
-
15
evcel VBAについて
Visual Basic(VBA)
-
16
excel vbaでvlooupの変数がわかりません。
Visual Basic(VBA)
-
17
Vba コマンドボタンイベントの共通化
Visual Basic(VBA)
-
18
VBAについて教えてください。 Excelで セルのB6~BG24でダブルクリックすると ダブルクリ
Visual Basic(VBA)
-
19
ユーザーフォームが立ち上がらない
Visual Basic(VBA)
-
20
違う文字のみ色を塗る方法がわかりません。。 G列とH列のに文字が入っています。 例えばG5とH5の文
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
このカテゴリの人気Q&Aランキング
-
4
Application.ScreenUpdating = ...
-
5
【VBA】Excelの特定範囲のセル...
-
6
特定のPCだけ動作しないVBAマク...
-
7
ExcelVBAを使って、値...
-
8
エクセルのエラーメッセージ「4...
-
9
VBA シートのボタン名を変更し...
-
10
Excel マクロ VBA プロシー...
-
11
メッセージボックスのOKボタ...
-
12
グラフの交点の求め方(Excel)
-
13
ボイス・トゥ・スカル(英語: V...
-
14
ExcelのVBAコードについて教え...
-
15
フルパスから最後のディレクト...
-
16
VBAでループ内で使う変数名を可...
-
17
別のシートから値を取得するとき
-
18
VBA 変数名に変数を使用したい。
-
19
【Excel VBA】指定行以降をクリ...
-
20
エクセルvbaでdocuworksprinter...
おすすめ情報
公式facebook
公式twitter
こちらの説明不足で申し訳ございませんでした。
エクセルシートにはアウトラインが設定されており、行数が足りなかった場合にアウトラインを開いて使用できるようになっております。
一番下に小計ページがくるのですが、アウトラインを開いていない時にも設定は小計行含め19行、開いている時には小計ページが最終頁にしかこないのですが、こちらもレイアウトを揃える為19行で改ページするようにしたいのです。この場合はどのような設定をしたらいいのでしょうか?