|
シート1の2行目から11行目までのD列にチェックボックスを1〜10を配置し、各行のABC列にはテキストが入力されています。各チェックボックスをTrueにすると、その行のA〜C列の文字が赤字・取り消し線で表現されるよう、マクロが設定されています。このマクロはシート1のマクロとして記録されています。
シート1での作業が完了したら、シート1をコピーしてシート2とし、シート2に対して作業を行います。以降、シート3、4と作業を繰り返します。この時、シート1に記録されているマクロはシート2にもコピーされますが、シートが増えるに従って、ファイルがものすごく重たくなってしまいます。
マクロをブックに記録すればこの問題は解決すると推測していますが、シート1の作業が完了し、シート2が作成された後は、チェックボックスに設定されているマクロはシート1には働かないようにする必要があります。以降、シートが増えるに従って、マクロは直近の(ACTIVEな)シートのみに作用し、古いシートには作用しないようにするにはどのようにしたらよろしいでしょうか。
因みに、シートに記録されているチェックボックスのマクロは以下のとおりです。
(チェックボックス1の例。チェックボックス2以降は行が一つずつ繰り下がる)
Private Sub CheckBox1_Click()
If CheckBox1 = True Then
Range("A2:C2").Select
With Selection.Font
.FontStyle = "標準"
.Size = 12
.Strikethrough = True
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ColorIndex = 3
End With
Else
Range("A2:C2").Select
With Selection.Font
.FontStyle = "標準"
.Size = 12
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ColorIndex = 1
End With
End If
End Sub
解決方法をご教示いただけると幸甚です。
|
|