Home » Excel VBA Rangeオブジェクト » Excel VBAのRange.HasFormulaで式ではない場合を判定

Excel VBAのRange.HasFormulaで式ではない場合を判定

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

「マクロ HasFormula falseのとき」
という検索でアクセスがありました。

Excel VBAのRangeオブジェクトに用意されているHasFormulaプロパティを使って、

セルに式が入っていない場合を判定するには、どのようなコードを書けばいいのかを探していらしたのでしょうか。

[スポンサードリンク]

Range.HasFormulaプロパティを使う基本

Range.HasFormulaプロパティの基本から確認しましょう。

以下のExcelマクロを実行すると、アクティブセルに式が入力されているかどうかを判定して、メッセージが表示されます。

Sub HasFormulaの基本()
 If ActiveCell.HasFormula Then
  MsgBox "アクティブセルに式が入力されています!"
 Else
  MsgBox "アクティブセルに式は入力されていません。"
 End If
End Sub

Range.HasFormulaプロパティを使っている

If ActiveCell.HasFormula Then

の部分は、慣れないうちは

If ActiveCell.HasFormula = True Then

とするほうが理解しやすいかもしれません。

少しずつ「= True」なしのコードに慣れましょう。

式ではない場合をTrueと判定するサンプル

「マクロ HasFormula falseのとき」
と検索なさった方が調べていたのは、以下のような書き方のような気がしています。

Sub HasFormulaの結果をNot演算子で反転()
 If Not ActiveCell.HasFormula Then
  MsgBox "アクティブセルに式は入力されていません。"
 Else
  MsgBox "アクティブセルに式が入力されています!"
 End If
End Sub

ポイントは、

If Not ActiveCell.HasFormula Then

のNot演算子です。

ActiveCell.HasFormulaの戻り値をNot演算子で反転しています。


Not演算子を使わずに式ではない場合を判定

Not演算子を使わず、以下のように論理値Falseとの比較演算を行っても、同様に判定できます。

Sub HasFormulaの結果をFalseで判定()
 If ActiveCell.HasFormula = False Then
  MsgBox "アクティブセルに式は入力されていません。"
 Else
  MsgBox "アクティブセルに式が入力されています!"
 End If
End Sub

[スポンサードリンク]

Home » Excel VBA Rangeオブジェクト » Excel VBAのRange.HasFormulaで式ではない場合を判定

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

検索


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

.