[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『コードのマクロ』(くろん)
Excel2003 WindowsXPです。 シートのコード表示のところにマクロを組んでるのですが同じ内容のシートが30シートありまして マクロの内容を少し変更するたびに30シート変更しなければいけませんが、それを何かの 方法で簡単またはマクロか何かで出来る方法はないですか? よろしくお願いします。
>シートのコード表示のところにマクロを組んでるのですが同じ内容のシートが30シート どんなコードでしょうか? シートのイベントプロシジャーなら、Thisworkbookのモジュールに記述すれば、 一つで済むかもしれませんよ!!
その他のコードでも方法はあるとおもいますから、具体的にどのようなコードのなのか 提示してみてください。
ichinose
Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Application.CutCopyMode = xlCopy Then Exit Sub End If Cells.Interior.ColorIndex = xlNone Columns(Target.Column).Interior.ColorIndex = 35 Rows(Target.Row).Interior.ColorIndex = 35 Selection.Interior.ColorIndex = 6 End Sub
または
Private Sub Worksheet_Change(ByVal Target As Range)
・ ・ ・ ・ End Sub
です。
すでにichinoseさんからお答えがでているように、アップされたコードであれば、シートモジュールから THisWorkbookモジュールに引越し。プロシジャ名は、ちょっとわかるけど。
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range) If Application.CutCopyMode = xlCopy Then Exit Sub Cells.Interior.ColorIndex = xlNone Columns(Target.Column).Interior.ColorIndex = 35 Rows(Target.Row).Interior.ColorIndex = 35 Selection.Interior.ColorIndex = 6 End Sub
(ぶらっと)
すべてのシートではない場合、例えば1日〜30日というシートが30個のみを上記のマクロ起動はどうなるのでしょうか?
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range) If Sh.Name Like "*日" Then If Not Application.CutCopyMode = xlCopy Then Sh.Cells.Interior.ColorIndex = xlNone Target.EntireColumn.Interior.ColorIndex = 35 Target.EntireRow.Interior.ColorIndex = 35 Target.Interior.ColorIndex = 6 End If End If End Sub
素早い回答ありがとうございました。
>If Sh.Name Like "*日" Then もし数字だけのシート名だと"*日”はどのように変更すれば出来るのでしょうか? 初心者としては"*"にしちゃいましたけど。。。無理でした。 よろしくお願いします。 (くろん)
If Sh.Name <> "集計表" Then 一例として、対象としないシートでなければ処理する。 (r)
>もし数字だけのシート名だと"*日”はどのように変更すれば出来るのでしょうか? If Not Sh.Name Like "*[!0-9]*" Then (seiya)
マクロは色々出来ますね。 完成しました。 rさん seiyaさんありがとうございました。
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.