- 締切済み
エクセルのマクロについて
Sub ア_Click() Dim i As Long With ActiveSheet For i = 5 To .Cells(Rows.count, "C").End(xlUp).Row If InStr(.Cells(i, "C"), "ア") = 0 Then If InStr(.Cells(i, "D"), "ア(半角)") = 0 and .Cells(i,"D")<>"" Then MsgBox i & "行目" Cells(i, 2).Offset(0, -1).Value = "★" End If End If Next i End With End Sub このエクセルマクロはC列に「ア」があって、D列に「ア(半角)」の文字がない場合はメッセージというマクロなのですが、このマクロをア~ンまで同じ作業をしたいのですが、ひとまとめにマクロを組む事はできるのでしょうか?できる場合どのようにすれば良いでしょうか? 下記のようにして見たのですができませんでした。 Sub ア_Click() Dim i As Long With ActiveSheet For i = 5 To .Cells(Rows.count, "C").End(xlUp).Row If InStr(.Cells(i, "C"), "[ア-ン]") = 0 Then If InStr(.Cells(i, "D"), "[ア-ン](半角)") = 0 and .Cells(i,"D")<>"" Then MsgBox i & "行目" Cells(i, 2).Offset(0, -1).Value = "★" End If End If Next i End With End Sub
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- hige_082
- ベストアンサー率50% (379/747)
これしか、思いつかなかった 折角なので、参考までに --------------------------------------- Sub ア_Click() Dim i,ii As Long Dim 全角,半角 As String With ActiveSheet For ii = 177 To 221 半角 = Chr(ii) 全角 = StrConv(半角, vbWide) For i = 5 To .Cells(Rows.count, "C").End(xlUp).Row If InStr(.Cells(i, "C"), 全角) = 0 Then If InStr(.Cells(i, "D"), 半角) = 0 and .Cells(i,"D")<>"" Then MsgBox i & "行目" Cells(i, 2).Offset(0, -1).Value = "★" End If End If Next i Next ii End With End Sub ----------------------------------- お粗末でした
- pulsa
- ベストアンサー率57% (34/59)
惜しかったですね もうちょいですよ たぶんこんな事かな? For i = 5 To Cells(Rows.Count, "C").End(xlUp).Row If Cells(i, "C") Like "[ア - ン]" Then '"[ア - ン]"は全角 If Cells(i, "D") Like "[ア - ン]" And Cells(i, "D") <> "" Then '"[ア - ン]"は半角 MsgBox i & "行目" Cells(i, 2).Offset(0, -1).Value = "★" End If End If Next i (XP/Excel2003) Cells(i, "C") とかはあんまり使わない書き方ですが、まぁ動けはOKでしょう Like演算子は、あいまい検索だから使っちゃダメという、変わった方がたまにいますが、これは『Likeじゃないと動きません』 何か違うようでしたら、補足お願いします
- n-jun
- ベストアンサー率33% (959/2873)
>C列に「ア」があって、D列に「ア(半角)」の文字がない場合はメッセージというマクロなのですが、 >このマクロをア~ンまで同じ作業をしたいのですが ア~ンまではそれぞれ別の処理がしたいのですか? それとも半角の文字の有無により処理を変えたいのですか?
- Masa2072
- ベストアンサー率51% (94/182)
正規表現を使う もしくはFor NextでASC("ァ")からASC("゜")までをループ処理。 正規表現については http://www.microsoft.com/japan/msdn/columns/scripting/scripting051099.aspx http://www.officetanaka.net/excel/vba/tips/tips38.htm
補足
C列に『ア』がある場合は必ずD列には半角の『ア』がなくてはならないんです。 Sub ア_Click() Dim i As Long With ActiveSheet For i = 5 To .Cells(Rows.count, "C").End(xlUp).Row If InStr(.Cells(i, "C"), "ア") = 0 Then If InStr(.Cells(i, "D"), "ア(半角)") = 0 and .Cells(i,"D")<>"" Then MsgBox i & "行目" Cells(i, 2).Offset(0, -1).Value = "★" End If End If Next i End With End Sub Sub イ_Click() Dim i As Long With ActiveSheet For i = 5 To .Cells(Rows.count, "C").End(xlUp).Row If InStr(.Cells(i, "C"), "イ") = 0 Then If InStr(.Cells(i, "D"), "イ(半角)") = 0 and .Cells(i,"D")<>"" Then MsgBox i & "行目" Cells(i, 2).Offset(0, -1).Value = "★" End If End If Next i End With End Sub Sub ウ_Click() Dim i As Long With ActiveSheet For i = 5 To .Cells(Rows.count, "C").End(xlUp).Row If InStr(.Cells(i, "C"), "ウ") = 0 Then If InStr(.Cells(i, "D"), "ウ(半角)") = 0 and .Cells(i,"D")<>"" Then MsgBox i & "行目" Cells(i, 2).Offset(0, -1).Value = "★" End If End If Next i End With End Sub 最終的にこのように作るとア~ンまでを1つ1つ作っていかなくてはいけないんです。これを何とか一本化できないでしょうか? Sub ☆_Click() ア_Click イ_Click ウ_Click ・ ・ ・ End Sub