C0000008_Withステートメントの使用禁止に関するガイドライン

Withステートメントの使用禁止に関するガイドライン コーディングガイドライン

守るべきルール

Withステートメントを使用しないこと。

With ThisWorkbook.Worksheets(1)
.Range("A1").Value = "テスト"
End With

↓置き換え

Dim wb As Workbook
Set wb = ThisWorkbook.Worksheets(1)
wb.Range("A1").Value = "テスト"

例外

  • なし

ルール制定の理由

Withステートメントはすべて変数で置き換えが可能です。変数の使用に対してWithステートメントは以下のような難解なコードの記述を可能にします。VBAエキスパート試験でも定番の問題であり、問題になるということは誤答率を稼ぎやすい、ひいては可読性を下げるコードであるということです。

With ThisWorkbook.Worksheets(1)
Range("A1").Value = .Range("A1").value
End With

↓同意のコード

ActiveSheet.Range("A1").Value = ThisWorkbook.Worksheets(1).Range("A1").Value

バージョン管理

バージョン履歴更新日更新内容
1.0.02025/10/06公開

アスパLabではExcelVBAのコーディングガイドラインを開示しています

アスパLabでは、すべてのExcelVBA開発者へ向けてコーディングガイドラインを公開しています。個人のスキルと考えられがちなExcelVBAを他のプログラミング言語と同様、組織的に管理し、業務へ応用してもらいやすくするためのガイドです。もちろんこのガイドラインに従うかどうかは開発者の皆さんや組織の管理者の自由な意思で決めてください。

Comment