ここから本文です

Excel VBA についてです。 最終行と最終列まで繰り返しの処理をするマ...

dor********さん

2018/6/1115:09:38

Excel VBA についてです。

最終行と最終列まで繰り返しの処理をするマクロを練習していますが
うまく起動しません。

"エラーメッセージはオブジェクトはこのプロパティまたはメソッドをサポートしていません"です。

Sub saiteng()

Dim row As Long '現在行
Dim column As Long ’現在列

Dim p_row_value As String '正解のセルの値
Dim n_row_value As String '現在行のセルの値

'各変数の値の初期化
p_row_value = ""
n_row_value = ""
p_column_value = ""
n_column_value = ""

Dim i As Long

For row = 3 To Cells(Rows.Count, 2).row

'最終列まで繰り返す
For column = 2 To Cells(3, Columns.Count).End(xlToLeft).column

'現在行列Cの値を取得
n_column_value = Cells(row, column).Value
p_column_value = Sheet2.Cells(row, column).Value
MsgBox p_column_value

'正解のセルと値が同じであれば色を付ける
If n_column_value = p_column_value Then
Cells(row, column).Interior.ColorIndex = 22 '現在行c列の色を変更
End If

Next column

n_row_value = Cells(row, column).Value
p_row_value = Sheet2.Cells(row, column).Value


If n_row_value = p_row_value Then
Cells(row, column).Interior.colerindex = 22
End If
Next row


'完了表示
MsgBox ("処理が完了しました。")
End Sub

どこがだめなのかお教えください。

閲覧数:
335
回答数:
2
お礼:
50枚

違反報告

ベストアンサーに選ばれた回答

hel********さん

2018/6/1115:37:39

まず、変数名に既知の関数名やメソッド、プロパティ名は使えません。

>Dim row As Long
>Dim column As Long

row、columnは行、列のプロパティなので変数名で使うとこちらが優先となります。

あと、プロパティ名の誤入力です。
>Cells(row, column).Interior.colerindex = 22

Cells(row, column).Interior.ColorIndex = 22

最終列の取得も間違っています。
For row = 3 To Cells(Rows.Count, 2).row

For row = 3 To Cells(Rows.Count, 2).End(xlUp).row

要は、開いているシートとSheet2の同じセルが同じであれば色を塗るということでは?

Sub saiteng()
Dim Gyou As Long '現在行
Dim Retu As Long '現在列
Dim i As Long, sh1 As Worksheet, sh2 As Worksheet
Set sh1 = Worksheets("Sheet1")
Set sh2 = Worksheets("Sheet2")
With sh1
For Gyou = 3 To .Cells(Rows.Count, 2).End(xlUp).row
For Retu = 2 To .Cells(3, Columns.Count).End(xlToLeft).column
If .Cells(Gyou, Retu) = sh2.Cells(Gyou, Retu) Then
.Cells(Gyou, Retu).Interior.ColorIndex = 22
End If
Next Retu
Next Gyou
End With
MsgBox ("処理が完了しました。")
End Sub

質問した人からのコメント

2018/6/12 11:00:45

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

ベストアンサー以外の回答

1〜1件/1件中

nan********さん

2018/6/1115:18:35

If n_column_value = p_column_value Then
Cells(row, column).Interior.ColorIndex = 22 '現在行c列の色を変更
End If

If n_row_value = p_row_value Then
Cells(row, column).Interior.colerindex = 22
End If

上と同じように「ColorIndex」で指定して下さい。

あわせて知りたい

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる