- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセルのマクロについて)
エクセルのマクロでC列の最後の文字を確認し、G列に特定の文言が入っていない場合にメッセージを表示するマクロ
このQ&Aのポイント
- エクセルのマクロを使って、C列の最後の文字が『林檎』であるかどうかを確認し、G列に『林檎』の文言が入っていない場合にメッセージを表示するマクロを作成したいです。
- 具体的には、C列のセルの文字列の最後から2文字が『林檎』であるかどうかを確認し、G列のセルには『林檎』の文言が入っていない場合には、対応する行番号とメッセージを表示するマクロです。
- 例えば、6行目のC列には『いいいい林檎』という文字列がありますが、G列には『林檎』の文言が入っていないので、6行目という行番号とメッセージを表示します。ただし、8行目はC列の最後の文字が『林檎』ではないので特にメッセージは表示しません。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
> 毎回範囲が変わるのですが・・・。 #1のmerlionXXです。 65536行はエクセル2003までの行数で、2007からは違います。 データ最下行が変動するなら、最初からそう書いてくれればこう書いたのですが。 C列データの最下行を求め、5行目から最下行までを対象にするサンプルです。 Sub test02() Dim i As Long With ActiveSheet For i = 5 To .Cells(Rows.Count, "C").End(xlUp).Row If Right(.Cells(i, "C"), 2) = "林檎" Then If InStr(.Cells(i, "G"), "林檎") = 0 Then MsgBox i & "行目" End If End If Next i End With End Sub
その他の回答 (1)
- merlionXX
- ベストアンサー率48% (1930/4007)
回答No.1
ほんとうに65536行までやる必要があるなら Sub test01() With ActiveSheet For i = 5 To 65536 If Right(.Cells(i, "C"), 2) = "林檎" Then If InStr(.Cells(i, "G"), "林檎") = 0 Then MsgBox i & "行目" End If End If Next i End With End Sub 普通はデータのある範囲だけにすると思いますが。
質問者
補足
毎回範囲が変わるのですが・・・。 例えば200行までだったり1500行まであったり・・・。 そのような場合↓ 65536までの範囲ならどんなときも対応できるかなとおもいまして・・・。 有難うございました!
お礼
わがままな質問に答えてくれて有難うございましたm(__)m 範囲が変わってもそれに応じて対応させることもできるんですね。 マクロのことは全く分らず非常に助かりました。 自分でも少し勉強してみたいと思います。 (できるようになるか解らないけど)