Visual Basic 中学校 掲示板 投稿の管理
タグのない投稿を抽出
統計
RSS
Visual Basic 中学校
投稿一覧
データグリッドビューをエクセルに出力したいです
この投稿へのリンク
https://keijiban.umayadia.com/ThreadDetail.aspx?ThreadId=30271#CommentId82974
この投稿の削除
削除パスワード
削除する
コメント本文
投稿者
初心者
 (社会人)
投稿日時
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