「VBA HasFormula とは」
「vba hasformula 使い方」
といった検索で、時折アクセスがあることに気がつきました。
拙著『理解するExcel VBA』シリーズ等でも多用しているオブジェクトブラウザーで、「HasFormula」を検索してみると、
RangeオブジェクトにだけHasFormulaプロパティが用意されていることがわかります。
Range.HasFormulaプロパティを使うと、セルに数式が含まれているかどうかを判定できます。
HasFormulaプロパティを確認するサンプルマクロ
たとえば下図のように
A1セルには数値の「0」を、A2:A4セルにはさまざまな数式を入力して、いずれも「0」が表示されているワークシートがアクティブな状態で、
以下のExcelマクロを実行してください。
Dim rng As Range
For Each rng In Range("A1:A4")
MsgBox rng.Address(False, False) & vbCrLf & rng.HasFormula
Next
End Sub
メッセージボックスにセル番地と共に、
False
True
True
True
が順番に表示されます。
A1セルには数式ではない単なる数値の「0」が入力されているためFalseが、A2:A4セルにはいずれも数式が入力されているため
=1*0
=0
=A5
Trueが返されます。
Range.HasFormulaプロパティは読み取り専用
オブジェクトブラウザーの詳細ペインに「読み取り専用」と表示されているとおり、
Range.HasFormulaプロパティは取得のみ可能で、設定はできません。
ですから、
といったコードを実行しようとしても、
「RangeクラスのHasFormulaプロパティを設定できません。」
実行時エラーが発生します。
最終更新日時:2022-12-05 13:50
- Newer:Word VBAで段落を中央揃えに
- Older:ISNUMBER関数とISERROR関数の違い
Home » Excel VBA Rangeオブジェクト » Excel VBAのHasFormulaとは