アフィリエイト広告を利用しています

広告

posted by fanblog

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プロジェクト オブジェクトモデルへのアクセスを信頼する」オプションを指定する。
(ファイル/オプション/トラストセンターもしくはセキュリティーセンター/トラストセンターの設定/開発者向けのマクロ設定)




【このカテゴリーの最新記事】
posted by naka at 14:07 | TrackBack(0) | Excel VBA

この記事へのトラックバックURL
https://fanblogs.jp/tb/9477395
※ブログオーナーが承認したトラックバックのみ表示されます。

この記事へのトラックバック
カテゴリーアーカイブ
×

この広告は30日以上新しい記事の更新がないブログに表示されております。