- 締切済み
Instr関数とLike演算子を組み合わせを教えて
Instr関数とLike演算子を組み合わせたものでループさせたい(VBA) Instr関数で複数のOr条件を満たすものを印刷と表示させ、Like演算子でワイルドカードであいまい検索で一致するものも印刷と表示させたいのですが上手くいきません。 本当はInstr関数とLike関数を組み合わせたいのですが調べても出てこず困っております。 どなたかお教えいただけないでしょうか? ちなみにVBA初心者です、、 Sub 印刷() Dim SHEETNAME As String Dim n As Long SHEETNAME = ActiveSheet.Name 'データ数の確認 S = Sheets(SHEETNAME).Range("c1000").End(xlUp).Row '(1)標準製品かつ第一産業かつ-の右側がJのもの と (2)標準製品かつ第二産業のもの のみ印刷(13列目は製品区分、10列目は会社名、4列目は型式名称) For n = 3 To S If InStr(Sheets(SHEETNAME).Cells(n, 13).Value, "標準製品") > 0 And Sheets(SHEETNAME).Cells(n, 10).Value = "第一産業" And _ Right(Left(Sheets(SHEETNAME).Cells(n, 4).Value, InStr(Sheets(SHEETNAME).Cells(n, 4).Value, "-") + 1), 1) = "J" Or _ InStr(Sheets(SHEETNAME).Cells(n, 13).Value, "標準製品") > 0 And InStr(Sheets(SHEETNAME).Cells(n, 10).Value, "第二産業") > 0 Then Sheets(SHEETNAME).Cells(n, 12) = "印刷" Else: Sheets(SHEETNAME).Cells(n, 12).Value = Delete End If Next '型式名称にOOPPが含まれるもののみ印刷(4列目は型式名称) For n = 3 To S Dim strValue As String Dim strPattern As String strValue = "Cells(n, 4).Value" strPattern = "*OOPP*" If strValue Like strPattern Then Sheets(SHEETNAME).Cells(n, 12) = "印刷" Else: Sheets(SHEETNAME).Cells(n, 12).Value = Delete Next End Sub
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- kkkkkm
- ベストアンサー率66% (1719/2589)
> strValue = "Cells(n, 4).Value" > strPattern = "*OOPP*" > > If strValue Like strPattern Then "Cells(n, 4).Value"という文字列にOOPPが含まれるかどうかの判断をしていますが strValue = Cells(n, 4).Value じゃないでしょうか。