2019年12月13日
[Excel vba] VBAコードの追加と’変数の宣言を強制する ' CountOfLinesプロパティ
■VBEのツール/オプション/編集の「変数の宣言を強制する」をONにするとOption Explicitが自動で挿入されるので便利なのですが、VBAコードの追加で下記のようなコードを実行すると
With ActiveWorkbook.VBProject.VBComponents.Item("ThisWorkbook").CodeModule
.InsertLines 1,"Private Sub Workbook_SheetSelectionChange" & _
"(ByVal Sh As Object, ByVal Target As Range)"
.InsertLines 2, ""
.InsertLines 3, " Application.ScreenUpdating = True"
.InsertLines 4, ""
.InsertLines 5, "End Sub"
End With
下のようにOption Explicitが挿入文の下に入ってしまいエラーになります。
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
Application.ScreenUpdating = True
End Sub
Option Explicit
■この様な時はCountOfLinesプロパティでモジュールの行数を取得し,
既存のコードの次の行に挿入するようにします。
With ActiveWorkbook.VBProject.VBComponents.Item("ThisWorkbook").CodeModule
.InsertLines (.CountOfLines + 1), _
"Private Sub Workbook_SheetSelectionChange" & _
"(ByVal Sh As Object, ByVal Target As Range)" & vbCrLf & _
vbCrLf & _
" Application.ScreenUpdating = True" & vbCrLf & _
vbCrLf & _
"End Sub" & vbCrLf
End With
もちろん、これはOption Explicitの自動挿入のケースだけでなく、
新規モジュールや既存のコードの最後に挿入するときにも使えます。
◇準備 VBAからVBAコードを追加変更するには、下記の設定が必要になります。
・参照設定にMicrosoft Visual Basic for Applications Extensibilityを追加する。
・「VBAプロジェクト オブジェクトモデルへのアクセスを信頼する」オプションを指定する。
(ファイル/オプション/トラストセンターもしくはセキュリティーセンター/トラストセンターの設定/開発者向けのマクロ設定)
【このカテゴリーの最新記事】
-
no image
この記事へのトラックバックURL
https://fanblogs.jp/tb/9477395
※ブログオーナーが承認したトラックバックのみ表示されます。
この記事へのトラックバック