• ベストアンサー

EXCELのVBAの中でMOD関数を使う方法

ExcelのVBAを使っていますが VBAのなかに UpDown = "=MOD(cBusNo,2)" という一行をいれているのですが 実行時エラー `13`: 型が一致しません のメッセージが出てしまいます ちなみに Updown とcBusNo は 共に Integer型 Double型の両方 指定しました(cBusNoはあるセルの入力値です) 単純にcBusNoが奇数か偶数かの判断をしたいのですが よろしくお願いいたします

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

  • ベストアンサー
  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.1

一例です。 算術演算子のModを使用します。 If cBusno Mod 2 Then MsgBox "奇数" Else MsgBox "偶数" End If

viva123
質問者

お礼

迅速な対応とても感謝いたします EXCELの中の関数とどうも混同してしまいます 実ははじめて使うものだったのでマクロの記録をしてVBAエディタに登録してそのまま使いました ダメですよね ありがとうございました 解決しました! VBA自体がよくわかっていないので 罫線を引くときなどはマクロを記録してそれを引用して 使っています 関数も同じように使ってしまいました・・・

その他の回答 (1)

回答No.2

----------------------------- イミディエイトウインドウ ----------------------------- ? "MOD(cBusNo,2)" MOD(cBusNo,2) ? cBusNo mod 2 0 ? 1 mod 2 1 ? 2 mod 2 0 このテストから、"MOD(cBusNo,2)"は文字列型であることが判ります。 更に、mod 演算子の使い方も違っています。 result = number1 Mod number2 これが、Mod 演算子の構文です。 MOD(n, d) = n - d*INT(n/d) というのは、VBAの Mod演算子ではなくExcelのMod関数の使い方。 つまり、Mod演算子とMod関数とは似て非なるものです。 VBAでは、通常はMod関数ではなくMod演算子を使います。 以上、二つの誤まりを正してから・・・。

viva123
質問者

お礼

迅速な対応とても感謝いたします なんだかとても馬鹿なことをしてしまいました 私がベストアンサーに選んだのは実はf_a_007さんでした 一番先に返事をいただいたので・・・ すぐに理解できましたし・・ でも入力するところを間違えたようです 以下のお礼分は間違えた方に送ったメッセージです 後から返事をいただいた方もとても親切でしたが 確認する前に返事をf_a_007さんに送っていると思い込んでました EXCELの中の関数とどうも混同してしまいます 実ははじめて使うものだったのでマクロの記録をしてVBAエディタに登録してそのまま使いました ダメですよね ありがとうございました 解決しました! VBA自体がよくわかっていないので 罫線を引くときなどはマクロを記録してそれを引用して 使っています 関数も同じように使ってしまいました・・・

関連するQ&A

専門家に質問してみよう