[[20071122110353]] 『VBA:ブック内の全シートに同じ処理を行う』(の) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『VBA:ブック内の全シートに同じ処理を行う』(の)

複数シートを持つブックがあります。各シートは、全く同じフォーマットの表です(シート毎に表内のデータは異なります)。しかしシートによって、オートフィルタで抽出結果を表示させた状態のもの、行・列の一部を非表示にしているものなどまちまちです。全シートに対して、以下の処理を全て行えるマクロが欲しいのですが、VBAでどう書くか教えていただけないでしょうか?よろしくお願いします。

  
・オートフィルタがかかっているところは、データを全て表示させる。
・ウィンドウの分割を解除する。
・非表示にしてある列や行を全て表示させる。
・全ての文字を黒(自動)にする。

 >・オートフィルタがかかっているところは、データを全て表示させる。
 >・ウィンドウの分割を解除する。
 >・非表示にしてある列や行を全て表示させる。
 >・全ての文字を黒(自動)にする。
 これをそれぞれでマクロの記録を行う。
 次に、上からmacro1, macro2, macro3, macro4 とした場合

 Sub sample()
     Call macro1()
     Call macro2()
     Call macro3()
     Call macro4()
 End Sub

 これで、まずは試してみてください。

 (1or8)

 sub test()
 dim ws as worksheet
 for each ws in sheets
  with ws
   .autofiltermode=false
   .activate
  activewindow.splitcolumn=0
  activewindow.splitrow=0
   with .cells
    .entirerow.autofit
    .entirecolumn.autofit
    .font.colorindex=xlautomatic
   end with
  end with
 next
 end sub
 (ROUGE)

 dim ws as worksheet, mystatus as integer, flg as boolean
 for each ws in sheets
     with ws
         if .protect then 
             .unprotect : flg = true
         end if
         mystatus = .visible
         .visible = -1
         .autofiltermode=false
         with .cells
             .font.colorindex = xlautomatic
             .entirerow.hidden = false
             .entirercolumn.hidden = false
         end with
         .activate
         activewindow.split=false
         .visible = mystatus
         if flg then .protect
         flg = false
     end with
 next
 (seiya)


 1or8san, ROUGE-san $ seiya-san,
 素早いReplyありがとうございました。
 無事マクロを取り入れることができ、本当に助かりました。
 VBAを殆ど知らないので、色々な設定(オートフィルタなど)がされていない
 シートに解除の命令をかけるとエラーになってしまうのかな、というところでまずつまずいていました。
 (ワークシート上の操作では、設定がされていない場合は、メニュー内の解除ボタンが選択できないし)。
 また何かありましたら質問させて頂きます。よろしくお願いします。

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.