この記事では、VBAのHasFormulaプロパティを使ってセルに入力されている情報が数式かどうかを判定する方法を、実際の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プロパティは数式判定の結果を、True か False で返します。
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