Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


471 / 13645 ツリー ←次へ | 前へ→

【80187】コードの最適化(取得したセル値をヘッダーに挿入他) 閣下 18/10/15(月) 13:06 質問[未読]
【80190】Re:コードの最適化(取得したセル値をヘッダ... マナ 18/10/15(月) 19:01 発言[未読]
【80191】Re:コードの最適化(取得したセル値をヘッダ... 閣下 18/10/15(月) 21:14 質問[未読]
【80192】Re:コードの最適化(取得したセル値をヘッダ... マナ 18/10/15(月) 21:40 発言[未読]
【80193】Re:コードの最適化(取得したセル値をヘッダ... 閣下 18/10/16(火) 9:05 お礼[未読]

【80187】コードの最適化(取得したセル値をヘッダ...
質問  閣下  - 18/10/15(月) 13:06 -

引用なし
パスワード
   はじめまして。

ファイルを閉じる時に
・指定したシートのあるセルの内容を、ヘッダーの左上に入れる
・ブック全体でページ番号/総ページ数を右上に入れる

マクロを作成し、動くことは動くのですがファイルを閉じる際に若干もっさりします。
2つの処理をまとめればもう少し軽くなるのかなと思いつつ弄っていますが、うまくいきません。申し訳ありませんが最適化したコードの例をご教示いただけますでしょうか。

'ファイルclose時に以下の処理をする
Private Sub Workbook_BeforeClose(Cancel As Boolean)
  Dim s As Worksheet
  For Each s In ThisWorkbook.Sheets
    '左上ヘッダーにaaシートB3セルの値を表示
    With s.PageSetup
      .LeftHeader = Worksheets("aa").Range("B3").Value
    End With
  Next

  '右上ヘッダーに"ドキュメント全体でのページNo/総ページ数"を表示
  Dim Cnt As Integer
  Dim n  As Integer
  Cnt = ActiveWorkbook.Worksheets.Count
  
  For n = 1 To Cnt
    With Worksheets(n).PageSetup
      .RightHeader = "(" & n & "/" & Cnt & ")"
      .FirstPageNumber = 1
    End With
  Next n
End Sub

【80190】Re:コードの最適化(取得したセル値をヘッ...
発言  マナ  - 18/10/15(月) 19:01 -

引用なし
パスワード
   ▼閣下 さん:

>・ブック全体でページ番号/総ページ数を右上に入れる
>  Cnt = ActiveWorkbook.Worksheets.Count
>      .RightHeader = "(" & n & "/" & Cnt & ")"

総ページ数=シート数??
すべてのシートで1ページしかないということですか。

そうであれば、

>ファイルを閉じる時に

ではなく、印刷する時に、対象シートのみに実行するのがよいのでは?


 

【80191】Re:コードの最適化(取得したセル値をヘッ...
質問  閣下  - 18/10/15(月) 21:14 -

引用なし
パスワード
   ▼マナ さん:
すみません、説明が不十分でした。
シートごとに最低1ページ以上のページがある想定で、ブック内のすべての
ワークシート ページに連続した番号を付けるのが目的です。


シートa:1ページ
シートb:2ページ
シートc:3ページ
シートd:2ページ

であれば、各シートのヘッダに
シートa:(1/8)
シートb:(2/8)、(2/3)
シートc:(4/8)、(5/8)、(6/8)
シートd:(7/8)、(8/8)

と入ります。

作成するドキュメント数が多い時、EXCELのページ レイアウトタブ→ページ設定→ダイアログボックス起動ツールから先頭ページ番号をちまちま入れるのが手間で、テンプレートとしてマクロを組み込めないかと考えた次第です。

【80192】Re:コードの最適化(取得したセル値をヘッ...
発言  マナ  - 18/10/15(月) 21:40 -

引用なし
パスワード
   ▼閣下 さん:

>作成するドキュメント数が多い時、EXCELのページ レイアウトタブ→ページ設定→ダイアログボックス起動ツールから先頭ページ番号をちまちま入れるのが手間で、テンプレートとしてマクロを組み込めないかと考えた次第です。

印刷する時に、全シートを選択状態にすれば、
ページ番号は、お望みの結果になると思います

【80193】Re:コードの最適化(取得したセル値をヘッ...
お礼  閣下  - 18/10/16(火) 9:05 -

引用なし
パスワード
   ▼マナ さん:

盲点でした。ありがとうございます。
印刷する時しかページ番号振る意味がないのでそれで十分ですね

471 / 13645 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free