質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.51%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

if

if文とは様々なプログラミング言語で使用される制御構文の一種であり、条件によって処理の流れを制御します。

Q&A

解決済

2回答

1707閲覧

VBAのIF文について

退会済みユーザー

退会済みユーザー

総合スコア0

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

if

if文とは様々なプログラミング言語で使用される制御構文の一種であり、条件によって処理の流れを制御します。

0グッド

0クリップ

投稿2018/04/21 11:39

excelのVBAで、セル範囲A1:B10の値で偶数のみ赤く塗りつぶす処理をコードにしたい

質問内容は上記の通りです。
■実行すると以下のようなエラーが発生します。

発生している問題・エラーメッセージ

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

##ソースコード
Sub As()
If Range("A1:B10") Mod 2=0 Then
Range("A1:B10").Font.ColorIndex=3
Else
End If

End Sub

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

エラーは、下記の行のIfの条件式 "Range("A1:B10") Mod 2=0"の部分で起きています。
Range("A1:B10")はセルの範囲(Range)なのに、整数に適用する剰余の演算子 Mod を使っているから「型が一致しません」(Modは、 3 Mod 2 のように 整数型の値 Mod 整数型の値というふうに使うもので、Range型の値 Mod 整数の値 という使い方はできません)

If Range("A1:B10") Mod 2=0 Then

Rangeに含まれる各セルは、RangeオブジェクトのCellsプロパティを使って参照します。

質問のコードを修正してみました。

Sub As() '変数の定義 Dim row as Integer, col as Integer 'ループで使う 行と列のIndexの変数 for row=1 to 10 '1行目から10行目まで for col=1 to 2 'A列からB列まで If (Range("A1:B10").cells(row,col).value Mod 2) = 0 Then Range("A1:B10").cells(row,col).Font.ColorIndex = 3 End If next col next row End Sub

投稿2018/04/21 11:59

coco_bauer

総合スコア6915

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2018/04/22 01:16

初めまして。ご回答ありがとうございます。回答いただいたコードを記載したところうまくいきました。 本当に助かりました。ありがとうございます。 もしよろしければ、もうひとつ質問してもよろしいでしょうか?
guest

0

Mod関数の左辺部分は「値」でなければならないですね。

Range()だと選択した範囲そのものなので、値ではありません(つまり型が一致しない)
forで回して各値をひとつずつ取得しつつ、1つ1つ判断していくしかないのではないでしょうか?

投稿2018/04/21 12:03

編集2018/04/21 12:03
m.ts10806

総合スコア80731

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2018/04/22 01:13

初めまして。ご回答ありがとうございます。回答いただいたコードを記載したところうまくいきました。 本当に助かりました。ありがとうございます。 もしよろしければ、もうひとつ質問してもよろしいでしょうか?
m.ts10806

2018/04/22 02:33

別途新しく質問あげてください
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.51%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問