# VB .NET で Excel ファイルを読み取り、作成する (コード例チュートリアル)
開発者はVB .NETのExcelファイルにアクセスする際に滑らかでシンプルなアプローチを必要とします。 このウォークスルーでは、IronXLを使用してVB .NETのExcelファイルを読み取り、プロジェクト利用のためのすべてのデータにアクセスします。 さまざまな形式のスプレッドシートを作成すること(`.tsv`)およびVB.NET Excelプログラミングを使用してセルのスタイルを設定したり、データを挿入したりすることについて学びます。
<div class="hsg-featured-snippet">
<h2>VB.NETでExcelファイルを読む方法</h2>
<ol>
<li><a class="js-modal-open" data-modal-id="trial-license-after-download" href="https://nuget.org/packages/IronXL.Excel/">VB.NETをダウンロードしてExcel C#ライブラリを読む</a></li>
<li>VB.NETでExcelファイルを作成</li>
<li>ワークシートにデータを挿入</li>
<li>VB.NETでExcelファイルを読み取る</li>
<li>ワークシートからデータにアクセスする</li>
<li>データに対して関数を実行する</li>
</ol>
</div>
<hr class="separator" />
<h4 class="tutorial-segment-title">ステップ1</h4>
## 1. VB.NET用Excelライブラリ
[DLLダウンロード](/csharp/excel/packages/IronXL.zip)または[NuGet](https://www.nuget.org/packages/IronXL.Excel)を使用してIronXL Excel for VB.NETライブラリを取得します。 IronXLはVB.NETプロジェクトでのExcelデータに迅速にアクセスするためのステップ1であり、このチュートリアルで使用します(開発のために無料)。
```shell
:ProductInstall
```
<hr class="separator" />
<h4 class="tutorial-segment-title">チュートリアル</h4>
## 2. VB.NETでExcelファイルを作成する
IronXLは、VB.NETプロジェクトでExcel(`.xlsx`形式)ファイルを作成するための最も簡単な方法を提供します。 その後、データを挿入し、フォントスタイルや境界線などのセルプロパティを設定することもできます。
### 2.1. Excelファイルを作成
まず、ワークブックを作成しましょう:
```vbnet
' Create a new Excel workbook with the default format (.xlsx)
Dim wb As New WorkBook
```
上記のコードは新しいExcelファイルを作成するためのものです。デフォルトでは、その拡張子は`.xlsx`です。
### 2.2. XLSファイルを作成
`.xls`拡張子のファイルを作成したい場合は、以下のコードを使用できます。
```vbnet
' Create a new Excel workbook with .xls format
Dim wb As New WorkBook(ExcelFileFormat.XLS)
```
### 2.3. ワークシートを作成
ワークブックを作成した後、次のようにExcelワークシートを作成できます:
```vbnet
' Create a new worksheet named "Sheet1" in the workbook
Dim ws1 As WorkSheet = wb.CreateWorkSheet("Sheet1")
```
上記のコードは、WorkBook `Sheet1`という名前で新しいWorkSheet `ws1`を作成します。
### 2.4. 複数のワークシートを作成
同じ方法で任意の数のワークシートを作成することができます:
```vbnet
' Create additional worksheets
Dim ws2 As WorkSheet = wb.CreateWorkSheet("Sheet2")
Dim ws3 As WorkSheet = wb.CreateWorkSheet("Sheet3")
```
<hr class="separator" />
## 3. ワークシートにデータを挿入する
### 3.1. セルにデータを挿入する
今、次のようにしてワークシート内のセルに簡単にデータを挿入できます:
```vbnet
' Insert a value into a specific cell
worksheet("CellAddress").Value = "MyValue"
```
たとえば、ワークシート`ws1`にデータを挿入するには、次のようにします。
```vbnet
' Insert "Hello World" into cell A1 of the worksheet
ws1("A1").Value = "Hello World"
```
上記のコードは、WorkSheet `Hello World`を書き込みます。
### 3.2. 範囲にデータを挿入する
範囲関数を使用して多くのセルにデータを書き込むことも可能です。
```vbnet
' Insert "NewValue" into the range from cell A3 to A8
ws1("A3:A8").Value = "NewValue"
```
### 3.3. ワークシートの作成と編集の例
新しいExcelファイル`Sample.xlsx`を作成し、そこにいくつかのデータを挿入して、上記で学んだコードを示します。
```vbnet
' Import IronXL namespace for Excel operations
Imports IronXL
' Main subroutine to create and edit Excel
Sub Main()
' Create a new workbook in XLSX format
Dim wb As New WorkBook(ExcelFileFormat.XLSX)
' Create a worksheet named "Sheet1"
Dim ws1 As WorkSheet = wb.CreateWorkSheet("Sheet1")
' Insert data into cells
ws1("A1").Value = "Hello"
ws1("A2").Value = "World"
' Insert a range of values
ws1("B1:B8").Value = "RangeValue"
' Save the workbook as "Sample.xlsx"
wb.SaveAs("Sample.xlsx")
End Sub
```
**注:** デフォルトでは、新しいExcelファイルはプロジェクトの`bin\Debug`フォルダに作成されます。 カスタムパスに新しいファイルを作成したい場合は、以下を使用します:
```vbnet
wb.SaveAs(@"E:\IronXL\Sample.xlsx")
```
新しく作成されたExcelファイル`Sample.xlsx`のスクリーンショットはこちらです。
<center>
<div class="center-image-wrapper">
<a rel="nofollow" href="/img/faq/excel/vb-net-excel-files/doc5-1.png" target="_blank"><img src="/img/faq/excel/vb-net-excel-files/doc5-1.png" alt="" class="img-responsive add-shadow" /></a>
</div>
</center>
VB.NETアプリケーションで`IronXL`を使用してExcelファイルを作成するのがいかに簡単であるかがわかります。
<hr class="separator" />
## 4. VB.NETでExcelファイルを読み込む
IronXLは、VB.NETプロジェクトでExcel(`.xlsx`)ファイルを読み取るための簡単なアプローチも提供します。 この目的のために、単にExcel文書を取得し、それをプロジェクトに読み込み、そのデータを読み、それを必要に応じて使用します。
次の手順に従います。
### 4.1. プロジェクトでのExcelファイルへのアクセス
`WorkBook`は、IronXLのクラスであり、そのオブジェクトはExcelファイルとその機能に完全にアクセスできます。 例えば、Excelファイルにアクセスしたい場合、単に以下を使用します:
```vbnet
' Load the Excel file "sample.xlsx" into a workbook
Dim wb As WorkBook = WorkBook.Load("sample.xlsx") 'Excel file path
```
上記のコードで`wb`にロードします。 特定のExcelファイルのWorkSheetにアクセスすることで、`wb`上であらゆる種類の関数を実行できます。
### 4.2. 特定のワークシートにアクセス
Excelの特定のシートにアクセスするには、`WorkSheet`クラスを使用します。次の異なる方法で使用できます。
#### シート名で
```vbnet
' Access worksheet by name
Dim ws As WorkSheet = wb.GetWorkSheet("Sheet1") 'by sheet name
```
#### シートインデックスで
```vbnet
' Access worksheet by index
Dim ws As WorkSheet = wb.WorkSheets(0) 'by sheet index
```
#### デフォルトシート
```vbnet
' Access the default worksheet
Dim ws As WorkSheet = wb.DefaultWorkSheet() 'for the default sheet
```
#### 最初のシート
```vbnet
' Access the first worksheet in the workbook
Dim sheet As WorkSheet = wb.WorkSheets.FirstOrDefault() 'for the first sheet
```
Excelシート`ws`を取得すると、対応するExcelファイルの WorkSheet からあらゆる種類のデータを取得し、すべての Excel機能を実行できます。
<hr class="separator" />
## 5. ワークシートからデータにアクセス
ExcelSheet `ws`からデータを次の方法でアクセスできます。
```vbnet
' Retrieve values from specific cells
Dim int_Value As Integer = ws("A2").IntValue 'for integer
Dim str_value As String = ws("A2").ToString() 'for string
```
### 5.1. 特定の列のデータ
特定の列の多くのセルからデータを取得することも次のように可能です:
```vbnet
' Loop through cells in a specific range and print their values
For Each cell In ws("A2:A10")
Console.WriteLine("value is: {0}", cell.Text)
Next cell
```
セル`A10`までの値を表示します。 上記の議論のコード例は以下に示されています。
```vbnet
' Example: Load and display values from a column
Imports IronXL
Sub Main()
' Load the workbook from file
Dim wb As WorkBook = WorkBook.Load("sample.xlsx")
' Get the first worksheet
Dim ws As WorkSheet = wb.WorkSheets.FirstOrDefault()
' Loop through cells in range A2:A10
For Each cell In ws("A2:A10")
Console.WriteLine("value is: {0}", cell.Text)
Next
Console.ReadKey()
End Sub
```
次の出力が表示されます:
<center>
<div class="center-image-wrapper">
<a rel="nofollow" href="/img/faq/excel/vb-net-excel-files/doc3-input1.png" target="_blank"><img src="/img/faq/excel/vb-net-excel-files/doc3-input1.png" alt="" class="img-responsive add-shadow" /></a>
</div>
</center>
Excelファイル`Sample.xlsx`のスクリーンショットを見ることができます。
<center>
<div class="center-image-wrapper">
<a rel="nofollow" href="/img/faq/excel/vb-net-excel-files/doc3-1.png" target="_blank"><img src="/img/faq/excel/vb-net-excel-files/doc3-1.png" alt="" class="img-responsive add-shadow" /></a>
</div>
</center>
<hr class="separator" />
## 6. データに関数を実行する
次のようにSum、Min、Maxなどの集約関数を適用してExcelワークシートからフィルターされたデータにアクセスすることはシンプルです:
```vbnet
' Aggregate functions on a range of data
Dim sum As Decimal = ws("From:To").Sum()
Dim min As Decimal = ws("From:To").Min()
Dim max As Decimal = ws("From:To").Max()
```
[Excel集約関数](https://ironsoftware.com/csharp/excel/tutorials/csharp-open-write-excel-file/#sample-function-sum)についてはこちらでさらに詳しく読むことができます。
```vbnet
' Example: Apply functions to data
Imports IronXL
Sub Main()
' Load the workbook
Dim wb As WorkBook = WorkBook.Load("sample.xlsx")
' Get the first worksheet
Dim ws As WorkSheet = wb.WorkSheets.FirstOrDefault()
' Perform aggregate calculations
Dim sum As Decimal = ws("G2:G10").Sum()
Dim min As Decimal = ws("G2:G10").Min()
Dim max As Decimal = ws("G2:G10").Max()
' Print the results
Console.WriteLine("Sum is: {0}", sum)
Console.WriteLine("Min is: {0}", min)
Console.WriteLine("Max is: {0}", max)
Console.ReadKey()
End Sub
```
このコードは以下の表示を与えます:
<center>
<div class="center-image-wrapper">
<a rel="nofollow" href="/img/faq/excel/vb-net-excel-files/doc3-output2.png" target="_blank"><img src="/img/faq/excel/vb-net-excel-files/doc3-output2.png" alt="" class="img-responsive add-shadow" /></a>
</div>
</center>
そしてこのExcelファイル`Sample.xlsx`。
<center>
<div class="center-image-wrapper">
<a rel="nofollow" href="/img/faq/excel/vb-net-excel-files/doc3-2.png" target="_blank"><img src="/img/faq/excel/vb-net-excel-files/doc3-2.png" alt="" class="img-responsive add-shadow" /></a>
</div>
</center>
詳細は、[Excel を読む](https://ironsoftware.com/csharp/excel/#read-excel)に関する記事を参照してください。
<hr class="separator" />
<h4 class="tutorial-segment-title">チュートリアル クイックアクセス</h4>
<div class="tutorial-section">
<div class="row">
<div class="col-sm-8">
<h3>ドキュメント API リファレンス</h3>
<p>IronXLのドキュメントAPIリファレンスにアクセスし、VB.NETプロジェクトでExcelを操作する簡単な方法をご確認ください。機能、関数、クラスなどのリストもご覧いただけます。 </p>
<a class="doc-link" href="/csharp/excel/object-reference/api/" target="_blank"> ドキュメント API リファレンス <i class="fa fa-chevron-right"></i></a>
</div>
<div class="col-sm-4">
<div class="tutorial-image">
<img style="max-width: 110px; width: 100px; height: 140px;" alt="" class="img-responsive add-shadow" src="/img/svgs/documentation.svg" width="100" height="140" />
</div>
</div>
</div>
</div>
' Import IronXL namespace for Excel operationsImportsIronXL' Main subroutine to create and edit ExcelSubMain() ' Create a new workbook in XLSX format Dim wb As New WorkBook(ExcelFileFormat.XLSX) ' Create a worksheet named "Sheet1" Dim ws1 AsWorkSheet = wb.CreateWorkSheet("Sheet1") ' Insert data into cells ws1("A1").Value = "Hello" ws1("A2").Value = "World" ' Insert a range of values ws1("B1:B8").Value = "RangeValue" ' Save the workbook as "Sample.xlsx" wb.SaveAs("Sample.xlsx")End Sub
' Import IronXL namespace for Excel operations
Imports IronXL
' Main subroutine to create and edit Excel
Sub Main()
' Create a new workbook in XLSX format
Dim wb As New WorkBook(ExcelFileFormat.XLSX)
' Create a worksheet named "Sheet1"
Dim ws1 As WorkSheet = wb.CreateWorkSheet("Sheet1")
' Insert data into cells
ws1("A1").Value = "Hello"
ws1("A2").Value = "World"
' Insert a range of values
ws1("B1:B8").Value = "RangeValue"
' Save the workbook as "Sample.xlsx"
wb.SaveAs("Sample.xlsx")
End Sub
' Retrieve values from specific cellsDim int_Value AsInteger = ws("A2").IntValue'for integerDim str_value AsString = ws("A2").ToString() 'for string
' Retrieve values from specific cells
Dim int_Value As Integer = ws("A2").IntValue 'for integer
Dim str_value As String = ws("A2").ToString() 'for string
VB .NET
5.1. 特定の列のデータ
特定の列の多くのセルからデータを取得することも次のように可能です:
' Loop through cells in a specific range and print their valuesFor Each cell In ws("A2:A10")Console.WriteLine("value is: {0}", cell.Text)Next cell
' Loop through cells in a specific range and print their values
For Each cell In ws("A2:A10")
Console.WriteLine("value is: {0}", cell.Text)
Next cell
VB .NET
セルA10までの値を表示します。 上記の議論のコード例は以下に示されています。
' Example: Load and display values from a columnImportsIronXLSubMain() ' Load the workbook from file Dim wb AsWorkBook = WorkBook.Load("sample.xlsx") ' Get the first worksheet Dim ws AsWorkSheet = wb.WorkSheets.FirstOrDefault() ' Loop through cells in range A2:A10 For Each cell In ws("A2:A10")Console.WriteLine("value is: {0}", cell.Text) NextConsole.ReadKey()End Sub
' Example: Load and display values from a column
Imports IronXL
Sub Main()
' Load the workbook from file
Dim wb As WorkBook = WorkBook.Load("sample.xlsx")
' Get the first worksheet
Dim ws As WorkSheet = wb.WorkSheets.FirstOrDefault()
' Loop through cells in range A2:A10
For Each cell In ws("A2:A10")
Console.WriteLine("value is: {0}", cell.Text)
Next
Console.ReadKey()
End Sub
' Aggregate functions on a range of dataDim sum AsDecimal = ws("From:To").Sum()Dim min AsDecimal = ws("From:To").Min()Dim max AsDecimal = ws("From:To").Max()
' Aggregate functions on a range of data
Dim sum As Decimal = ws("From:To").Sum()
Dim min As Decimal = ws("From:To").Min()
Dim max As Decimal = ws("From:To").Max()
' Example: Apply functions to dataImportsIronXLSubMain() ' Load the workbook Dim wb AsWorkBook = WorkBook.Load("sample.xlsx") ' Get the first worksheet Dim ws AsWorkSheet = wb.WorkSheets.FirstOrDefault() ' Perform aggregate calculations Dim sum AsDecimal = ws("G2:G10").Sum() Dim min AsDecimal = ws("G2:G10").Min() Dim max AsDecimal = ws("G2:G10").Max() ' Print the resultsConsole.WriteLine("Sum is: {0}", sum)Console.WriteLine("Min is: {0}", min)Console.WriteLine("Max is: {0}", max)Console.ReadKey()End Sub
' Example: Apply functions to data
Imports IronXL
Sub Main()
' Load the workbook
Dim wb As WorkBook = WorkBook.Load("sample.xlsx")
' Get the first worksheet
Dim ws As WorkSheet = wb.WorkSheets.FirstOrDefault()
' Perform aggregate calculations
Dim sum As Decimal = ws("G2:G10").Sum()
Dim min As Decimal = ws("G2:G10").Min()
Dim max As Decimal = ws("G2:G10").Max()
' Print the results
Console.WriteLine("Sum is: {0}", sum)
Console.WriteLine("Min is: {0}", min)
Console.WriteLine("Max is: {0}", max)
Console.ReadKey()
End Sub