• ベストアンサー

エラー VBA

BVAを練習中です。 SubまたはFunctionが定義されていません という表示が出ますが、調べても何が原因か 分かりませんでした。 最初の行に「Sub 〇〇()」という一文もつけましたし 次に何か足りない、ということでしょうか。 Sumを使ったものを作りたいのですが、そのエラーが 出たときにSumの部分が青く反転しています。

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

  • ベストアンサー
  • kon555
  • ベストアンサー率51% (1849/3570)
回答No.2

『Sumを使ったものを作りたいのですが』という事ですが、vbaにはsumコマンドは存在しません。sumはシート関数です。  具体的なコードが書かれていないので想像ですが、多分シート関数のような書き方でsumなにがしと記述していませんか? 「SubまたはFunctionが定義されていません」とは存在しないプロシージャを呼び出そうとした時のエラーです。  sumはvbaには存在しないので、システム的にそれをプロシージャとして処理し、かつ存在しないためエラーになったわけです。  vbaでワークシート関数を使うにはworksheetfunctionを使用します。 https://excel-ubara.com/excelvba1r/EXCELVBA510.html  ただvbaの勉強中というなら、まずはワークシート関数を使わずに、変数と演算で数値を合計してみてもよいと思います。

すると、全ての回答が全文表示されます。

その他の回答 (2)

回答No.3

EXCELVBAでSUMワークシート関数を使う場合は Dim TotalVal as Integer TotalVal = Application.WorksheetFunction.Sum("D1:D32") のようにします。 Dim TotalVal as Integer TotalVal = Sum("D1:D32") だけだと「そんな関数はありません」というエラー、つまり「SubまたはFunctionが定義されていません」エラーになります。 因みに、エラーの原因は「青い反転した部分」にあるので、青い反転部分を適切に直さないと、エラーは消えません。

すると、全ての回答が全文表示されます。
  • f272
  • ベストアンサー率46% (8653/18507)
回答No.1

「Sumの部分が青く反転しています」というのなら,そこがおかしい。 そして「SubまたはFunctionが定義されていません」というのだから,そのSumというのは何者?と疑問に思ってください。どこにも悌吾されてないのでしょう。

すると、全ての回答が全文表示されます。

関連するQ&A