• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセルVBAについて質問です)

エクセルVBAでのActivecell.Rowの問題

このQ&Aのポイント
  • エクセルVBAで関数を作成しようとしていますが、Activecell.Rowの部分でエラーが発生しています。
  • 手動計算では問題なく動作しますが、自動計算に切り替えると他のセルの値まで参照してしまいます。
  • Activecell.Row以外のセル番地の取得方法を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.1

方法1: >これ以外のセル番地の取得方法が分からなくって application.callerを使います。 変更前: If Cells(ActiveCell.Row, 51) = 0 Then  変更後: if cells(application.caller.row, 51) = 0 then 方法2: 関数の引数としてセルを渡します。 現在の関数の使い方の意図でいうと、自セルを渡すような格好にして計算します。 他のセルを渡せば、「渡したセルの行の数字」で計算もしてくれます。 public function shotoku2(target as range, houshuu as long)  ’中略 for each fr in range("C13:C347") if cells(target.row, 51) = 0 then  : end function 使い方: H13セルに =shotoku2(H13,99999)