観覧いただきありがとうござます。
現在仕事で一覧シートを基にチェックシートを作成しようかとしているのですがその時のマクロで不明点があるため質問いたします。(自宅のPCにはExcelが入っていないためスプレットシートですが空気感だけでも感じていただければと思います。)
↓作成したいチェックシートのイメージ↓
![
↓表作成の素材↓
![
以下現在のコード(一部抜粋
VBA
1'sheetをセット 2Dim ws1,ws2 As Worksheet 3Set ws1 = sheets("一覧") 4Set ws2 = sheets("check") 5 6'変化する数字をセット 7Dim c As Long 8c = 4 9'一覧のB4から下へ空白までループ 10Do While ws1.Cells(c,2).Value<>"" 11’一覧から2つの単語を含むセルを探し〇×表へ反映 12If Instr(ws1.Cells(c,4).Value"app") And InStr(ws1.Cells(c,4).Value"102")<>0 Then 13 '条件を満たせばchecksheetのB5へ〇満たせないなら×を 14 ws2.Cells(5,2).Value = "〇" 15 Exit Do 16 Else 17 ws2.Cells(5,2).Value = "×" 18End If 19c = c+1 20Loop 21
これをapp等(一覧画像のA5から下)の13種、102等(一覧画像のB4から右)の30種ありすべてを上記のようにベタ打ち力技で作りました。
しかしこれでは何かある度に膨大な量の修正&見逃しがないか何重もの確認を強いられどうにか簡単にできないか悩んでおります。
現在やってみたのは
[If Instr(ws1.Cells(c,4).Value"app") And InStr(ws1.Cells(c,4).Value"102")<>0 Then]
このコードを
[If Instr(ws1.Cells(c,4).Value"ws2.Cells(5,1)") And InStr(ws1.Cells(c,4).Value"ws2.Cells(4,2)")<>0 Then]
こんな感じで表から引用して済む様な仕組みにしたいと考え動いてみたのですがセル番地の指定、中の取り出し、1巡したら1つずらしてLoop。これをどう表現したらいいのかわからず困っています。
どうか参考になるサイトや考え方のこ教授お願いいたします。