アプリ版:「スタンプのみでお礼する」機能のリリースについて

ExcelのVBAを使っていますが
VBAのなかに

UpDown = "=MOD(cBusNo,2)"

という一行をいれているのですが

実行時エラー `13`:
型が一致しません

のメッセージが出てしまいます

ちなみに Updown とcBusNo は 共に Integer型 Double型の両方
指定しました(cBusNoはあるセルの入力値です)

単純にcBusNoが奇数か偶数かの判断をしたいのですが

よろしくお願いいたします

A 回答 (2件)

一例です。


算術演算子のModを使用します。

If cBusno Mod 2 Then
MsgBox "奇数"
Else
MsgBox "偶数"
End If
    • good
    • 0
この回答へのお礼

迅速な対応とても感謝いたします

EXCELの中の関数とどうも混同してしまいます
実ははじめて使うものだったのでマクロの記録をしてVBAエディタに登録してそのまま使いました
ダメですよね

ありがとうございました
解決しました!

VBA自体がよくわかっていないので
罫線を引くときなどはマクロを記録してそれを引用して
使っています
関数も同じように使ってしまいました・・・

お礼日時:2011/10/27 15:11

-----------------------------


イミディエイトウインドウ
-----------------------------
? "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演算子を使います。

以上、二つの誤まりを正してから・・・。
    • good
    • 0
この回答へのお礼

迅速な対応とても感謝いたします

なんだかとても馬鹿なことをしてしまいました
私がベストアンサーに選んだのは実はf_a_007さんでした
一番先に返事をいただいたので・・・
すぐに理解できましたし・・
でも入力するところを間違えたようです

以下のお礼分は間違えた方に送ったメッセージです
後から返事をいただいた方もとても親切でしたが
確認する前に返事をf_a_007さんに送っていると思い込んでました



EXCELの中の関数とどうも混同してしまいます
実ははじめて使うものだったのでマクロの記録をしてVBAエディタに登録してそのまま使いました
ダメですよね

ありがとうございました
解決しました!

VBA自体がよくわかっていないので
罫線を引くときなどはマクロを記録してそれを引用して
使っています
関数も同じように使ってしまいました・・・

お礼日時:2011/10/27 15:29

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!