Home » Excel VBA Rangeオブジェクト » Excel VBAのHasFormulaとは

動作検証バージョン:64bit Windows 10 Pro + 32bit Excel(バージョン2208 ビルド15601.20148 Microsoft Store)

「VBA HasFormula とは」
「vba hasformula 使い方」
といった検索で、時折アクセスがあることに気がつきました。

[スポンサードリンク]

拙著『理解するExcel VBA』シリーズ等でも多用しているオブジェクトブラウザーで、「HasFormula」を検索してみると、

RangeオブジェクトにだけHasFormulaプロパティが用意されていることがわかります。

Range.HasFormulaプロパティを使うと、セルに数式が含まれているかどうかを判定できます。

HasFormulaプロパティを確認するサンプルマクロ

たとえば下図のように

A1セルには数値の「0」を、A2:A4セルにはさまざまな数式を入力して、いずれも「0」が表示されているワークシートがアクティブな状態で、

以下のExcelマクロを実行してください。

Sub HasFormulaで数式を含むセルかを判定する()
 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プロパティは取得のみ可能で、設定はできません。

ですから、

Cells(1, 1).HasFormula = True

といったコードを実行しようとしても、
「RangeクラスのHasFormulaプロパティを設定できません。」
実行時エラーが発生します。

最終更新日時:2022-12-05 13:50

[スポンサードリンク]

Home » Excel VBA Rangeオブジェクト » Excel VBAのHasFormulaとは

「Excel VBA Rangeオブジェクト」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.