Excelマクロを削除するマクロについての質問です。
Excelマクロを削除するマクロについての質問です。
現在Excel2003で、記入に便利なようにマクロを使って「パソコンボランティア活動報告書」(以下"活動報告書")を作っています。
この活動報告書をセキュリティ警告(マクロを有効にする等)が出ないようにしてホームページに載せたいので、私なりに「新しいマクロの記録」を使って、「マクロ削除」のマクロを作ってみました。
しかしこれでは今までのマクロは削除されますが、「マクロ削除」マクロが残ってしまいます。
今までのマクロはもちろんのこと、「マクロ削除」マクロを消すためにはどうすればいいのでしょうか?
Sub マクロ削除()
'
' マクロ削除 Macro
'
'
ActiveSheet.Unprotect
ActiveWindow.SmallScroll Down:=9
Range("Q27:R27").Select
Selection.ClearContents
ActiveWindow.SmallScroll Down:=-21
Sheets("リスト項目").Visible = True
Application.DisplayAlerts = False
Sheets("リスト項目").Delete
Cells.Select
With Selection.Validation
.Delete
.Add Type:=xlValidateInputOnly, AlertStyle:=xlValidAlertStop, Operator _
:=xlBetween
.IgnoreBlank = True
.InCellDropdown = True
.IMEMode = xlIMEModeNoControl
.ShowInput = True
.ShowError = True
End With
Range("E4:P4,J5:AG5,E6:N6,R6:AG6,F7:J7,O7:AG7,C15:AG17").Select
Range("C15").Activate
ActiveWindow.SmallScroll Down:=9
Range("E4:P4,J5:AG5,E6:N6,R6:AG6,F7:J7,O7:AG7,C15:AG17,I27:O27,C28:AG41"). _
Select
Range("C28").Activate
ActiveWindow.SmallScroll Down:=15
Range( _
"E4:P4,J5:AG5,E6:N6,R6:AG6,F7:J7,O7:AG7,C15:AG17,I27:O27,C28:AG41,C42:AG44"). _
Select
Range("C42").Activate
Selection.ClearComments
ActiveWindow.SmallScroll Down:=-36
Range("AC4:AE4,F5:I5,J5:AG5,E6:N6,R6:AG6,F7:J7,O7:AG7").Select
Range("O7").Activate
Selection.ClearContents
Range("E4:P4").Select
ChDir "C:\work"
ActiveWorkbook.SaveAs Filename:="C:\work\yyyymmddパソコンボランティア活動申請及び報告書.xls", _
FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:=False, CreateBackup:=False
Range("E4:P4").Select
End Sub
お礼
早速のご教授ありがとうございました。 マクロの記述を以下の様に変更し、無事成功しました。 Sub Macro2() ' ' Macro2 Macro ' Dim sheetno As Integer For sheetno = 1 To 32 Worksheets(sheetno).Select' Range("E5:R12").Select ActiveWindow.SmallScroll Down:=6 Range("E5:R12,E14:R22").Select Range("E14").Activate ActiveWindow.SmallScroll Down:=12 Range("E5:R12,E14:R22,E24:R28").Select Range("E24").Activate ActiveWindow.SmallScroll Down:=6 Range("E5:R12,E14:R22,E24:R28,E30:R34").Select Range("E30").Activate Selection.ClearContents Next End Sub しかし、何か理解していないのかと思いますが、 シートは「31」までなのに For sheetno = 1 To 31 では、「30」までしか、実行されず、 For sheetno = 1 To 32 にするとシート 31まで実行されました。 何か勘違いしてるのでしょうか? 取り敢えず、うまくいきました。 ありがとうございました。