VB.NETでEXCELシートを操作する方法まとめ

VB.NETでEXCELシートを操作する方法をいくつかまとめて紹介します。

EXCELファイルを使うときにやっておくべき設定や方法

VB.NETでEXCELファイルを使うときにやっておくべき設定や方法を簡単に紹介します。

EXCELファイルを扱うときには、下のサンプルプログラムのようにMicrosoft.Office.xxxが必要になります。そのため事前に参照設定しておく必要があります。

メニューのプロジェクト→参照の追加→COM→EXCELで検索→「Microsoft Office xx.x Object Library」にチェックを入れ、OKを押します。
設定はこれだけです。

<サンプル>

Public Class Form1
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
‘変数宣言
Dim ex As New Microsoft.Office.Interop.Excel.Application
Dim sh As Microsoft.Office.Interop.Excel.Worksheet
Dim wb As Microsoft.Office.Interop.Excel.Workbook

‘ファイルオープン
wb = ex.Workbooks.Open(“C:\wk\test1.xlsx”)
sh = wb.Sheets(“一覧表”)
MsgBox(sh.Range(“A2”).Value)
ex.Quit()
End Sub
End Class

EXCELを開いてファイル名やシート名を取得する方法

ここでは、VB.NETでEXCELを開いてファイル名やシート名を取得する方法を紹介します。

VB.NETでEXCELを開いてファイル名やシート名を取得するには、Excel.Applicationを使います。

<サンプル>

Public Class Form1
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
‘変数宣言
Dim ex As New Microsoft.Office.Interop.Excel.Application
Dim wb As Microsoft.Office.Interop.Excel.Workbook

‘ファイルオープン
wb = ex.Workbooks.Open(“C:\wk\test3.xlsx”)
MsgBox(wb.Name)

For i = 1 To wb.Sheets.Count
MsgBox(wb.Sheets(i).name)
Next

ex.Quit()
End Sub
End Class

まず変数宣言で、Excel.Application、Workbookを宣言しています。次にファイルオープンします。
「wb = ex.Workbooks.Open(“C:\wk\test3.xlsx”)」でファイル名を指定してエクセルファイルを開いています。

そして「MsgBox(wb.Name)」でファイル名を取得しています。「MsgBox(wb.Sheets(i).name)」でシート名を1件ずつ取得しています。

最後に「ex.Quit()」でExcel.Applicationをクローズしています。これをしないとファイルがオープンされたまま、ロックされてしまいます。

EXCELシートを開いて値を取得する方法

ここでは、VB.NETで任意のEXCELシートを開いて値を取得する方法を紹介します。

VB.NETで任意のEXCELシートを開いて値を取得するには、Excel.Applicationを使います。

<サンプル>

Public Class Form1
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

‘変数宣言
Dim ex As New Microsoft.Office.Interop.Excel.Application
Dim sh As Microsoft.Office.Interop.Excel.Worksheet
Dim wb As Microsoft.Office.Interop.Excel.Workbook

’ファイルオープン
wb = ex.Workbooks.Open(“C:\wk\test1.xlsx”)

sh = wb.Sheets(“一覧表”)
MsgBox(sh.Range(“A2”).Value)
ex.Quit()

End Sub
End Class

まず変数宣言で、Excel.Application、Worksheet、Workbookを宣言しています。次にファイルオープンします。
wb = ex.Workbooks.Open(“C:\wk\test1.xlsx”)」でファイル名を指定してエクセルファイルを開いています。

さらに「sh = wb.Sheets(“一覧表”)」でシート名を指定してシートを開いています。「sh = wb.Sheets(1)」とすることで1番目のシートを開くこともできます。

そして「MsgBox(sh.Range(“A2”).Value)」でシートの中のセルの値をRangeを使って取得しています。

最後に「ex.Quit()」でExcel.Applicationをクローズしています。これをしないとファイルがオープンされたまま、ロックされてしまいます。

EXCELシートに値を書き込んで保存する方法

ここでは、VB.NETでEXCELシートに値を書き込んで保存する方法を紹介します。

VB.NETでEXCELシートに値を書き込んで保存するには、Excel.Applicationを使います。

<サンプル>

Public Class Form1
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

‘変数宣言
Dim ex As New Microsoft.Office.Interop.Excel.Application
Dim sh As Microsoft.Office.Interop.Excel.Worksheet
Dim wb As Microsoft.Office.Interop.Excel.Workbook

‘ファイルオープン
wb = ex.Workbooks.Open(“C:\wk\test2.xlsx”)
sh = wb.Sheets(“一覧表”)
sh.Range(“C3”).Value = sh.Range(“C3”).Value + 20
wb.Save()
ex.Quit()
MsgBox(“終了”)

End Sub
End Class

まず変数宣言で、Excel.Application、Worksheet、Workbookを宣言しています。次にファイルオープンします。
「wb = ex.Workbooks.Open(“C:\wk\test2.xlsx”)」でファイル名を指定してエクセルファイルを開いています。

さらに「sh = wb.Sheets(“一覧表”)」でシート名を指定してシートを開いています。「sh = wb.Sheets(1)」とすることで1番目のシートを開くこともできます。

そして「sh.Range(“C3”).Value = sh.Range(“C3”).Value + 20」でシートの中のセルの値をRangeを使って取得し、20を足して代入しています。

wb.Save()」でシートの上書き保存を行っています。別名保存したい場合は、「wb.SaveAS(C:\wk\test3.xlsx)」などとしてください。

最後に「ex.Quit()」でExcel.Applicationをクローズしています。これをしないとファイルがオープンされたまま、ロックされてしまいます。