| 
    
     |  | こんにちは。かみちゃん です。 
 >「実行時エラー'1004': アプリケーション定義またはオブジェクト定義のエラーです」が表示され、デバッグすると必ずIfからの行が黄色になります。
 
 
 Dim i As Integer
 Dim j As Integer
 j = 3 * i - 1
 
 のコードの上は、どうなっているのか知りたいところですが、
 もし、
 
 Sub Macro1()
 Dim i As Integer
 Dim j As Integer
 j = 3 * i - 1
 
 というようになっているのであれば、
 
 j = 3 * i - 1
 
 は、どのような値が得られていると思いますか?
 
 ThisWorkbook.Worksheets("シフト").Cells(2, j)
 
 というコードにするのであれば、
 この時点で、変数 j の値は、列番号を示す値でなければいけません。
 
 たぶん、j の値が 0(ゼロ)以下になっているのではないでしょうか?
 
 たとえば、
 ThisWorkbook.Worksheets("シフト").Cells(2, -1)
 とは、具体的にどこのセルなのですか?わかりません。
 
 ということで、Excelがエラーメッセージを出しています。
 
 
 |  |