Categories: VBA

VBAで数式かどうかを判定│HasFormulaプロパティの使い方

この記事では、VBAHasFormulaプロパティを使ってセルに入力されている情報が数式かどうかを判定する方法を、実際のVBAコードも含めて紹介します。

(VBAではなく)Excelでは、IsFormulaという関数で、数式かどうかを判定することができますが、VBAコードで記述する場合には、HasFormulaプロパティを使います。

ExcelでIsFormulaを使う方は、実用的な活用をしている脱初心者のレベルかと思いますが、VBAでも同じように数式かどうかの判定ができるように、早速VBAコードを見ていきましょう。

VBA│HasFormulaプロパティで数式かどうかを判定

この章では、セルA1とセルA2に入力されている情報に対して、数式かどうかを判定するVBAコードを紹介します。なお、セルA1とセルA2の両方のセルを準備しているのは、数式と値、それぞれを判定可能であることを確かめるためです。

上図はセルの見かけ上では判別できないのですが、セルA1には「=SUM(5-9)」の数式が、セルB2には「17」の値が設定されています。

基本構文

object. HasFormula

  • object = 数式かどうかを判定する対象のセル
    この例では、A1とB2です
  • HasFormula = 数式かどうかを判定するプロパティ

HasFormulaプロパティは数式判定の結果を、TrueFalse で返します。

Rangeプロパティ

Sub Sample()

Dim s1 As String , s2 As String
s1 = Range(“A1”).HasFormula
s2 = Range(“A2”).HasFormula


MsgBox s1 & vbCrLf & s2

End Sub

Cellsプロパティ

Sub Sample()

Dim s1 As String , s2 As String
s1 = Cells( 1 , 1 ).HasFormula
s2 = Cells( 2 , 1 ) .HasFormula


MsgBox s1 & vbCrLf & s2

End Sub

Webs

元事務処理担当者として、プログラミングを活用した業務改善を推進している。プログラマ出身ではない事務職の現場目線で情報を発信。 その他、webs-studio.jpをメインに、複数のブログサイトを立ち上げており、合計で月間10万PVのメディア運営を行っている。 姉妹サイト一覧