プロが教える店舗&オフィスのセキュリティ対策術

シートが30シート(全て違うデータで、平均一シートあたり三ページある)に、一度に、印刷の設定で全てのシートの全てのページに行タイトル(5行含罫線)を 設定できる方法を 教えてください。

全てのシートを選択して行タイトルをつけようとしても出来なかったんです。

行タイトルのマクロを組んで、一つずつのシートに行タイトルをつけることは、出来るのですが、出来れば、一回で、全てのシートに設定したいんです。もしも、出来るならば、よろしくお願いします。

A 回答 (4件)

マクロを作ってみました。


各シートの行タイトル部分は同じ行(下では3から7行目)としています。それにシート名は連番とし、4シート(wsNum=4)で作っています。質問の答えになっていればいいですが。
各シートに名前がついている場合、シート毎に行タイトル部分が違っていても応用すれば対応できると思います。

Sub HeaderSet()
Dim ws As Worksheet 'ワークシート
Dim wsCot As Integer 'ワークシートカウンタ
Dim wsNum As Integer 'ワークシート数
wsNum = 4 '4シートにしています
'
For wsCot = 1 To wsNum
'シー名は連番を想定しています。
Set ws = Worksheets("Sheet" & wsCot)
ws.Activate

'全てのシートに同じ行を設定
ActiveSheet.PageSetup.PrintTitleRows = "$3:$7"
Next
End Sub
    • good
    • 0
この回答へのお礼

お返事本当に、ありがとうございました。

実は、マクロを組むと言うこと、言語まで、よくわかっていなかったので、お礼が遅くなってしまいました。
一応、シート名が、すべて、違うので、シート名を できれば、1から30の数字に、一旦変換するマクロを組み込んでから、やってみようと思ってます。
もしも、できれば、そのプログラムも、教えていただけると ありがたいのですが。。。。
今一応、勉強してみては、いるのですが。。

よろしくお願いします。

お礼日時:2001/04/25 21:45

>できれば、そのプログラムも、教えていただけると ありがたいのですが。

。。。
しばらくお待ち下さい。
    • good
    • 0

前回「シー名は連番を想定しています。

」としてしまったのがまずかったようで、視点がシート名にいってしまったようですね。 For Next の方が分かり易いと考えましたが、シート名はユーザが自由に付けるべきで、モジュール側が連番を強いるべきではなかったと反省しています。
ユーザが意味を持って付けたシート名を意味不明な連番に変えてしまうのは危険と思いますので、シート名を変えるマクロは作成辞退させてください。
代わりに、シート名がどのように付けてあっても共通行範囲をタイトル行にするマクロを作りましたので参考にして下さい。
 ※31シート目以降にタイトル行を付けたくないシートがあるのではないかと想像したのも For Next を使った理由でした。
 ※行タイトルを設定したくないシートがあれば 'If ws.Name = "*****1" の箇所にそのシート名を入れて「'」をはずして下さい。

Sub HeaderSet2()
Dim ws As Worksheet 'ワークシート
Dim TaitolSetFLG As Boolean '行タイトルセットの可否
'全てのシートに同じ行を設定
For Each ws In Worksheets
TaitolSetFLG = True
'If ws.Name = "*****1" Then TaitolSetFLG = False
'If ws.Name = "*****2" Then TaitolSetFLG = False
'If ws.Name = "*****3" Then TaitolSetFLG = False
If TaitolSetFLG = True Then
ws.Activate
ActiveSheet.PageSetup.PrintTitleRows = "$3:$7"
End If
Next
End Sub
    • good
    • 0
この回答へのお礼

本当に、いろいろと 親切に、どうもありがとうございます!
幸い、30行は、全て、タイトルを入れることになっているのですが、もしも、入れては、いけない時は、ぜひ、’If・・・・で、やってみます。

おかげさまで、やってみて、出来た時の感動は、とっても、すごかったです!
ごちゃごちゃの毛糸が、一つの線になった感じです!

私も、勉強しなきゃって、思ってます。もしも、良いVBAの参考書が あったら、ぜひ、教えてくださいませんか?
お忙しいとは思うのに、早い回答の方、本当に、ありがとうございました。

お礼日時:2001/04/28 16:40

>私も、勉強しなきゃって、思ってます。

もしも、良いVBAの参考書が あったら、ぜひ、教えてくださいませんか?
参考書を何冊も買ったことが無いので比較はできませんが、今はVBAの参考書もたくさんあるので、ご自分でわかり易いと思われた本がいいのではないでしょうか。パラパラ見る限り、どの本も余り変わりませんし。
私は、最初に買ったのがエーアイ出版のExcel95VBAのすべて。今はExcel2000でしょうか。よく使ったのが主婦の友社の逆引きExcel97/98VBA編。通勤電車内で読んだのが技術評論社のVBAプログラミング500の技でした。(これは少し毛色が違っていました) 逆引き・・・も重宝しましたが、いまはもっぱらヘルプを利用しています。
要は、基本を身に付け、数をこなすことではないでしょか。分からないときはOKWEBを使いながら (^U^)
また、多人数で使うものを作るため、自分なりにVBAを扱うときに心がけている点があります。
○ユーザにやさしい
 ・入力が簡単にできる
 ・余分な判断を不要にする
 ・入力に対してチェックを行い、原因と対処方法を表示する
    このため入力にはユーザーフォームを使うことが多い
○処理手順を明確にする
 ・人が行う手順を基本とする
 ・簡明な処理手順を作る
 ・余りに複雑になった処理は見直す
○入力、処理、出力でシートを分ける
 ・処理を簡明にするためにシートの機能を分離する
 ・エラーの復旧、仕様の変更に迅速に対応するため
○定数値、直接セル番地を使用しない
 ・モジュール内に変更の可能性がある定数値を置かない。一括して定義しておく。
 ・モジュール内に直接セル番地を使用しないで範囲名を使用する
 ・キー記録の使用は必要最低限にする
○妥協しないで手作業をなくす。
○人が手作業でできることは何でもプログラム化できると思って取りかかる。不可能を証明することは作るより難しい。作ったほうが速い。

こんなことを心がけて作っています。ご参考に。
これからもがんばって下さい。
    • good
    • 0
この回答へのお礼

本当に、いろいろと、ありがとうございます!
とても、参考になりました。
いろいろと参考にさせていただいて、頑張ろうと思ってます!

お礼日時:2001/04/29 13:05

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!