2007年10月6日土曜日

第48回目 ちょっとした小物、印刷編2

○第48回目 ちょっとした小物、印刷編2

 前回で残ったものの内の
 2.印刷において、ヘッダー、フッタなどを抑止・非抑止の選択ができる機能
 3.カラープリンタでの印刷か通常のプリンタでの印刷かの選択が出来る機能
 4.ページ番号を印刷するかどうかが指定できる機能
 6.任意のページ数から印刷できる機能
 を考えてみます。

 このグループは、マクロを作るというより、操作マクロで得たものを張り付けながらまとめあげるといったものになります。
 2でいえば、マクロの記録をオン(Alt+T+M+R)にして、印刷ダイアログのヘッダのタブで、表示したいものを入れたり、それらを削除したりして記録をとってください。
 そして外から与えた情報で、二つの選択肢を選んでください。マクロの記録ではいろんな情報が取れますが、関係ないと思われるものは削除してください。そうすれば、既存のものにある一部を置換えといった処理になります。全部生かしてしまいますと全部とっかえということになって、関係しないところまで変わってしまうのです。
 "変えたいところだけ変える、それ以外のところはいままでのまま"、という考えのマクロにしてください。
 例えば、2については、
  With ActiveSheet.PageSetup
   .LeftHeader = ""
   .CenterHeader = ""
   .RightHeader = "&D;&T"
   .LeftFooter = ""
   .CenterFooter = ""
   .RightFooter = "&9&Z&F&A"
  End With
 としますと、右ヘッダと右フッタ以外は何もなくなってしまいます。
 現在のものを生かすとして、右ヘッダと右フッタ以外の記述は削除するほうがいいでしょう。
 ページ数は、中央フッタになると思いますので、次の通りとなります。
  With ActiveSheet.PageSetup
    .CenterFooter = "&P"
  End With
 (一つなのでwith構文は不要かと思われます。
  ActiveSheet.PageSetup.CenterFooter = "&P" となります
  ページ数を印刷しない場合は、=""となります)

 始まりのページ番号の設定は、次の通りとなります。
  ActiveSheet.PageSetup.FirstPageNumber = jj

 プリンタの設定は、次のようになります。
  Application.ActivePrinter = "XXX Color Writer 789C on Ne01:"

 基本構造は、それぞれのパラメータの入力(inputbox関数)とその条件わけということになります。

 ※上記は重要部分のみの記述なので、印刷の設定でマクロの記録をとり、自分のパソコンにあったものにしてください。2007と2003でのコマンドの差に最近戸惑っています。
 ※基本的な機能ですので、通常の操作とそれほど変わりません。ショートカットを活用し、操作を単純にしないと、何をしたのかわからなくなってしまいます。
  例えば、プリンタの選択は、通常処理の場合、Ctrl+P、プリンタのプルダウンメニューからプリンタを選択し、エンターキーを押す、という操作なので、コンパクトな操作にしないと、マクロで操作する意味が薄れます(この例の場合は、キーボード派の度合いが強くないと、通常の操作より快適にはならないでしょう)。

0 件のコメント: