プラディープは、与えられた式の項の数を把握する必要があります。たとえば、式= 5 + 80 * 3/6には4つの項があります。彼は、数式の項の数(4)を伝えるために使用できる数式を望んでいます。

この情報を収集するためにExcelで使用できる組み込み関数はありません。したがって、最もクリーンなアプローチは、次のような独自の関数を作成することです。

Function TermsInFormula(TheCell As Range)

Dim sFormula As String     Dim vOps As Variant     Dim iCount As Integer     Dim J As Integer     Dim AWF As WorksheetFunction

Application.Volatile     vOps = Array("+", "-", "*", "/", "^")



Set AWF = Application.WorksheetFunction     sFormula = TheCell.Formula     iCount = 1     For J = LBound(vOps) To UBound(vOps)

iCount = iCount + Len(sFormula) _           - Len(AWF.Substitute(sFormula, vOps(J), ""))

Next

TermsInFormula = iCount     Set AWF = Nothing End Function

この関数は、参照されているセルの数式をチェックして、5つの数学演算子のうちのいくつが含まれているかを確認します。各項は演算子で区切られているため、数式の項の数は常に演算子の数より1つ多くなります。

この関数を使用するには、セルA1の数式に含まれる用語の数を知りたいと仮定して、セルに次の数式を入力します。

=TermsInFormula(A1)

この関数は、数式、数値、および数式のように見えるテキストで機能します。ただし、日付の表示は関数が検査するFormulaプロパティの一部ではないため、日付の「/」は演算子とは見なされません。 (日付の表示は、Formulaプロパティではなく、TextまたはValueプロパティの一部です。)

先ほど、数式の項の数は一般に演算子の数より1つ多いと述べました。すべての式がそれほど単純ではないため、ここでの有効な単語は「一般的に」です。使用している数式の種類を視覚的に調べて、期待する結果が得られていることを確認する必要があります。

注:

このページ(または_ExcelTips_サイトの他のページ)で説明されているマクロの使用方法を知りたい場合は、役立つ情報を含む特別なページを用意しました。

_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。

このヒント(3265)は、Microsoft Excel 97、2000、2002、および2003に適用されます。Excel(Excel 2007以降)のリボンインターフェイス用のこのヒントのバージョンは、次の場所にあります。