Range("B14") .Value = "= DSUM(B3:G10 ,G3 ,A2:A3)"
       ' ワークシート関数は = から始まるので記入を忘れてはいけない。

Range("B15") .Value = " = IF(B14 > 0 ,B14," " " " ) "
       ' B14が0なら空白にすると言う関数は、" " " " の様に [ " ] を4つ入れる必要がある。
       ' どんな関数でも、空白を指す場合はこれを忘れないようにしないと、思うように関数
       ' 入力ができない。
B15に記入する関数は、= IF(B14 > 0 ,B14 ," ") である。
これは、B14が 0 ならB15を空白にする、と言うものである。
関数では、B14が0より大きい場合は、その数値をB15に表示し、B14が0の場合にはB15を空白にする、
となる。

VBAのプログラム
1. B14セルにDSUM関数をVBAで記入して、A3にコードを入力すれば結果が表示される様にしたい。
  B14に記入する関数は、=DSUM(B3:G10,G3,A2:A3) である。
  尚、コード120はデータが無い状態である。

2. B15セルにB14セルを見て、その結果を表示する。
Sub WorkSheet関数( )
  Dim rangeD As Range          ' rangeD は Set で使用して範囲を示すから Rangeになる。
  Dim N As Single             ' 合計金額等は桁が大きくなるからIntegerではいけない。
  Dim Cod As Integer
  Dim i2 As Integer
  Dim i As Integer

  Range("H3:J12") .ClearContents      ' H3からJ12の範囲を文字だけ消去する。
  Range("A3") .ClearContents

  Cod = " "                 ' これは、Cod変数のコードと、取得したコードを比較する
                       ' ので、最初は無しにしている。
  i2 = 8                    ' i2は、コード集計の合計を書く列位置で初期値は8列目で
                       ' ある。
  For i = 4 To 10
   If Range("D" & i) = Cod Then GoTo Jump
                       ' D列の取得位置のコードとすでにCodにあるコード番号を
                       ' 比較して、同じなら、その行の金額を取得する必要が無い
                       ' ので、Next へジャンプさせている。

  Cod = Range("D" & i )          ' D列のコードを取得してCodに代入する。
  Range("A3") .Value = Cod        ' 取得したコードをDSUMの条件に記入する。

  Set rangeD = Worksheets("Sheet1") .Range("A2:A3")
                       ' Set は RangeD変数にA2からA3の範囲を代入する。
                       ' 変数に範囲やセル位置を代入する場合は、このように
                       ' Set を使用する。又、Set で代入した変数はプログラムの
                       ' 終わりに Set rangeD = Nothing を記入しなければ
                       ' Excel の終了まで定義されたままになる。

  N = WorksheetFunction .DSum(Range("B3:G10") ,"金額" ,rangeD)
                       ' ワークシート関数は、この構文で記入する。
                       ' WorksheetFunction.まで入力するとDSumの位置に関数の
                       ' 候補が表示される。

  Cells(3 ,i2) .Value = Cod           ' 3行目の i2 列にCodの値を記入する。
  Cells(i ,i2) .Value = N            ' i 行目の i2 列にNの値を記入する。
  i2=i2+1                 ' i2に1を加算して、記入する列が右に移動する。
Jump:
  Next                    ' 折り返し点、Forに戻る。
  Set rangeD = Nothing             ' rangeD変数を開放する。
End Sub

● VBAからセルにワークシート関数を記入する。
上の表が、集計結果である。
1. 実行動作は、D列の4行目のコードを取得して、A3に記入する。
2. ワークシート関数を使用して、そのコードの合計金額をH列からJ列に記入して行く。
3. それぞれのコードは、別の列に書いている。
上の様な仕入データ表がある場合に、仕入先コード別に、仕入金額の一か月分を集計する様な場合、
ワークシート関数のDSUMが良い。だが、VBAにはその関数はないので、ワークシート関数を使用する
但し、DSUMの規制上このような表になる。DSUMは抽出条件をA2:A3の様に書かなくてはならない。
A3に抽出コードを書く。
DSUMの構文は、= DSUM(B3:G10,"金額",A2:A3) である。
VBAでワークシート関数を使用して、表内の集計等をする場合の構文を解説します。
 
基本的なマクロの習得
ワークシート関数の使用とセルに記入する


実際に使っているシステムの内容で解説
  EXCEL VBA 講座