投稿者 初心者  (社会人) 投稿日時 2017/8/10 09:23:57
返信ありがとうございます。
 一応正常に動くことは確認できたのですが、COMの解放がちゃんとできていないせいかタスクが残ってしまいます。
for文の箇所をコメントアウトして動かしたらタスクは残らなかったのでfor文がおかしいと思うのですがどこがおかしいのでしょうか、、、お願いします。
  '出力ボタン
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        
         Dim app As Excel.Application = Nothing
         Dim books As Excel.Workbooks = Nothing
         Dim book As Excel.Workbook = Nothing
         Dim sheets As Excel.Sheets = Nothing
         Dim sheet As Excel.Worksheet = Nothing
         Dim range As Excel.Range = Nothing

         Try
             'Excelを開く
            app = New Excel.Application()

             'Bookを開く
            books = app.Workbooks
             book = books.Open("C:\form3\Book1.xlsx")

             'シートの指定
            sheets = book.Worksheets
             sheet = DirectCast(sheets(1), Excel.Worksheet)

             range = sheet.Range("B2")
             range.Value = LoginForm1.username & "さん"

             'Excelに出力する
            For i As Integer = 0 To DataGridView1.Rows.Count - 1

                 range = sheet.Range("B" & i + 5 & "")
                 range.Value = DataGridView1.Rows(i).Cells(1).Value

                 range = sheet.Range("C" & i + 5 & "")
                 range.Value = DataGridView1.Rows(i).Cells(4).Value

                 range = sheet.Range("D" & i + 5 & "")
                 range.Value = DataGridView1.Rows(i).Cells(5).Value

                 range = sheet.Range("E" & i + 5 & "")
                 range.Value = DataGridView1.Rows(i).Cells(6).Value

                 range = sheet.Range("F" & i + 5 & "")
                 range.Value = DataGridView1.Rows(i).Cells(7).Value

                 'range = sheet.Range("B" & i + 5 & "")
                 'range.Value = DataGridView1(i, 1).Value

                 'range = sheet.Range("C" & i + 5 & "")
                 'range.Value = DataGridView1(i, 4).Value

                 'range = sheet.Range("D" & i + 5 & "")
                 'range.Value = DataGridView1(i, 5).Value

                 'range = sheet.Range("E" & i + 5 & "")
                 'range.Value = DataGridView1(i, 6).Value

                 'range = sheet.Range("F" & i + 5 & "")
                 'range.Value = DataGridView1(i, 7).Value

             Next

             'Excelの表示
            app.Visible = True

             ''5秒だけ表示する
            System.Threading.Thread.Sleep(1000)

             '保存する
            book.Save()

         Catch ex As Exception
             Throw ex

         Finally
             Marshal.ReleaseComObject(range)
             Marshal.ReleaseComObject(sheet)
             Marshal.ReleaseComObject(sheets)
             Marshal.ReleaseComObject(book)
             Marshal.ReleaseComObject(books)
             '閉じる
            app.Quit()
             Marshal.ReleaseComObject(app)

         End Try

     End Sub