• ベストアンサー

コンパイルエラーが出て進めません。

おはようございます。 先日、「作りながら覚える! excel vba マクロ 組み方講座 永井善王著」という本を購入してvbaマクロを勉強中です。 本にそって進めていくと、P.67の所でストップしてしまいました。 急に「コンパイルエラー 変数が定義されていません」と表示され、何回やりなおしてもそこから進めなくなりました。 コードは、 Option Explicit Sub 請求合計と消費税を計算して編集する() Sheets("客別売上").Select 請求合計 = WorksheetFunction.Sum(Range("d2:d11")) 消費税 = Round(請求合計 / 105 * 5) Sheets("請求書").Select Range("e18").Value = 請求合計 Range("h18").Value = 消費税 & " 円" End Sub になります。 上記の「Sub 請求合計と消費税を計算して編集する()」 が黄色くなっています。 どうぞ助けてください。

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

  • ベストアンサー
  • mc-aumsc
  • ベストアンサー率32% (9/28)
回答No.1

請求合計・消費税という2つの変数を使うのであれば、それぞれを変数として定義しなければなりません。 その式の前に、以下の命令文を加えておいてください。 Dim 請求合計 As Long Dim 消費税 As Long

suisu0830
質問者

お礼

ご回答ありがとうございます。 これでクリアーできました。本当にありがとうございました。 昨日から、四苦八苦して何度もやり直していたので、もっと早く質問しておけばと後悔しています。ただすっきりしました。 これから勉強をせっかくしていくので、MC-AUMSCさんが言われるようにきちっとした形で勉強していこうと思います。 ありがとうございました。

その他の回答 (1)

  • TYWalker
  • ベストアンサー率42% (281/661)
回答No.2

補足すると、Option Explicitというのを削除する(ツール=>オプション=>編集で編集の制限を強制するをオンにしていると自動的に入る)と厳しい(Explicit)姿勢でプログラムを作ることを強制されないので、宣言していない変数も自由に使えますので、ちょこちょこっとだらしない姿勢でプログラムを作る場合はそれでもOKです。 ただ、本を一冊まるまる勉強しようという姿勢の場合は、あえて入れた方がいいでしょう。大規模なプログラムの場合は、Option Explicitを入れていないとバグが発生した時どこが間違っているのかわかりにくいので、入れた方がよいです。

suisu0830
質問者

お礼

ご回答ありがとうございました。 本を一冊まるまる勉強しようという姿勢ですので、入れて勉強していこうと思います。 この補足のおかげで、今後の姿勢も決まりました。本当にありがとうございました。 昨日から困っていたので、すっきりできました。 ありがとうございました。

関連するQ&A