ExcelVBA(マクロ)で何回も同じオブジェクト名を書くのを避ける方法/Withステートメントの使い方

IT

重複するオブジェクト名・プロパティ名などを省略できるWithステートメントの使い方です。

Advertisements

Withステートメントの使い方

with1
アクティブセルの値を、ひとつ右のセルにコピーするというプログラムで考えてみます。
with2
ActiveCell.Next = ActiveCell.Valueというコードを実行すると、コピーが実行されることが確認できます。
コード内には二回ActiveCellが登場していますが、
with5
この状態からコードの前にWith ActiveCellを付け、
with6
コードの後にはEnd Withを付けます。WithとWithでコードを挟んだ状態です。
with7
このWith間では、最初に指定したWithの後ろのActiveCellが省略可能になります。
つまり、以下のコードでActiveCell.Next = ActiveCell.Valueと同じ意味になります。
' vba
' 省略する文字を宣言
With ActiveCell
' .から始めると、ActiveCellが頭に付いたことになる
.Next = .Value
End With
with8
なおWithを使う時は、囲んだコードはTabを押して一段下げておくと見やすいコードになります。
関数・演算子・メソッド・プロパティ名から探すExcel/VBA(マクロ)使い方・組み合わせ方まとめ
こちらはExcelやメソッドの諸機能を、機能の名称から探せるまとめ記事です。

コメント