VB.NET EXCEL操作 値入力

今回は、VB.NETからEXCELの値の入力する方法について紹介していきます。

また、2次元配列のデータをブックに張り付けることもできます。

他にもEXCEL操作関係の記事を記載していますので、参考にしてみてください。

VB.NET EXCEL操作 新規ブック作成
VB.NET EXCEL操作 罫線を引く
VB.NET EXCEL操作 背景色を付ける
VB.NET EXCEL操作 フィルター設定

それではさっそく見ていきましょう。

EXCEL 値入力

まずは、基本的な値の入力方法を紹介していきます。

Worksheet.Cells(行,列) = 値

このような書き方で、EXCELに値を入力することができます。

例を見てみましょう。

sheet.Cells(1, 1) = "名前"
sheet.Cells(1, 2) = "身長"
sheet.Cells(1, 3) = "体重"
sheet.Cells(1, 4) = "メモ"

結果

このように指定したセルに値を入力することができます。

EXCEL まとめて入力

先ほどのように、指定したセルに対して、値を入力することができるのですが、大量のデータを入力すると動きがとても遅くなります。

そこで、セルにまとめて入力する方法があるので紹介していきます。

まとめて入力する際は、2次元配列を利用します。2次元配列がわからない方はこちらを参考にしてみてください。

例を見てみましょう。

Dim arr_header(0, 3) As String
arr_header(0, 0) = "名前"
arr_header(0, 1) = "身長"
arr_header(0, 2) = "体重"
arr_header(0, 3) = "メモ"

Dim range As Excel.Range = Nothing
range = sheet.Range(sheet.Cells(1, 1), sheet.Cells(1, 4))
range.Value = arr_header

解説
1~5行目:2次元配列の作成
7行目:張り付ける範囲を指定。開始のセル(1,1) 終了のセル(1,4)
8行目:指定した範囲の値を入力 作成した2次元配列のデータを指定した範囲に張り付けている。

結果

やり方は違いますが、先ほどと同じ結果になっていると思います。

大量のデータを入力するときは、まとめて入力しましょう。

データテーブルを2次元配列にする方法も便利なので載せておきます。

サンプルソース

Imports Microsoft.Office.Interop

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

        'EXCEL変数
        Dim excelApp As New Excel.Application()
        Dim excelBooks As Excel.Workbooks = excelApp.Workbooks
        Dim excelBook As Excel.Workbook = excelBooks.Add()
        Dim sheet As Excel.Worksheet = excelApp.Worksheets("sheet1")

        '範囲指定
        Dim range As Excel.Range = Nothing

        Try

            excelApp.Visible = False

            'ヘッダー作成
            sheet.Cells(1, 1) = "名前"
            sheet.Cells(1, 2) = "身長"
            sheet.Cells(1, 3) = "体重"
            sheet.Cells(1, 4) = "メモ"

            '明細作成
            Dim arr_detail(2, 3) As String
            arr_detail(0, 0) = "田中"
            arr_detail(0, 1) = "160"
            arr_detail(0, 2) = "60"
            arr_detail(0, 3) = "おはよう"

            arr_detail(1, 0) = "鈴木"
            arr_detail(1, 1) = "170"
            arr_detail(1, 2) = "70"
            arr_detail(1, 3) = "こんにちは"

            arr_detail(2, 0) = "山本"
            arr_detail(2, 1) = "180"
            arr_detail(2, 2) = "80"
            arr_detail(2, 3) = "こんばんは"

            range = sheet.Range(sheet.Cells(2, 1), sheet.Cells(4, 4))
            range.Value = arr_detail

            excelBook.SaveAs("D:\NewExcelBook.xlsx")

            MessageBox.Show("処理完了")

        Catch ex As Exception
            Throw
        Finally
            excelApp.Quit()
            Call System.Runtime.InteropServices.Marshal.ReleaseComObject(sheet)
            Call System.Runtime.InteropServices.Marshal.ReleaseComObject(excelBook)
            Call System.Runtime.InteropServices.Marshal.ReleaseComObject(excelApp)
        End Try
    End Sub
End Class

結果

まとめ

EXCELのセルに値を入力する方法は2パターンあります。

セルを指定して入力する方法とセルの範囲を指定してまとめて入力する方法です。

データ量が多い場合は、まとめて入力することで処理時間を短縮することができるので、是非利用してみてください。

 

VB.NETの記事一覧

おすすめの記事