トップに戻る

Visual Basic 2005で、エクセルを利用


エクセルをとことん使おうということで、Visual basic 2005から、
エクセルを利用する方法を追加しました。
エクセルを使うことにより、Visual Basic2005で、エクセルのワークシートや
豊富な、エクセルの関数を利用できるようになります。
エクセルのVBAで、コードを書いても良いのですが、VB2005で、コードを書くと
いろいろな、GUIのコンポーネントも使えて、便利です。

Visual Basic2005 expressはマイクロソフトのホームページより、無償で入手できます。

まず、VBを立ち上げ、プロジェクトを作り、参照設定をします。
プロジェクト → 参照の追加をします。
追加が出来ていれば、プロジェクト → プロパティの参照タブに以下の様なものが
追加されます。私の場合は、オフィスXPで、バージョンによって、
エクセルの数字は、変わると思われます。
また、エクセルの参照を行うと、右図の上三つが、ローカルに
全部コピーされているのが解ります。

Public Class Form1

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click


        Dim app As New Excel.Application
        Dim wb As Excel.Workbook
        Dim wsh As Excel.Worksheet
        Dim fn As String = "excel_test.xls"
        Dim rin, rout, tan As Excel.Range

        wb = app.Workbooks.Open(fn)
        'シート1をセット
        wsh = wb.Sheets(1)
        Try
            app.Visible = True
            With wsh

                rin = .Range(.Cells(1, 1), .Cells(3, 3))
                rout = .Range(.Cells(5, 1), .Cells(7, 3))
                tan = .Range(.Cells(9, 1), .Cells(11, 3))

                rout.Value = app.WorksheetFunction.MInverse(rin)
                tan.Value = app.WorksheetFunction.MMult(rin, rout)

            End With
            wb.Close()
            app.Quit()
            app = Nothing
        Catch ex As Exception
            wb.Close()
            app.Quit()
            app = Nothing
        End Try

    End Sub
End Class
例は、エクセルのアップリケーションの
を利用する基本的なコードと、
まず、自分のドキュメントホルダーに
excel_test.xlsを作り、
左下の基本的データを入力して、
保存クローズして、
右のプログラムを実行します。
右のプログラムは、エクセルの
ワークシート関数を利用して、
逆行列を計算し、
もともとの行列に逆行列をかけて、
単位行列を計算し、
ワークシートに書き込むという
コードになっています。
上記プログラムを実行する前の基本データです。
プログラム、実行後のデータです。
逆行列を計算し
その逆行列と元のデータを、演算し、単位行列を計算しています。
1.11E-16の値は、計算誤差なので、
まず、単位行列とみなせます。

上記の簡単な、例を見ても解るように, Visual Basic 2005は、エクセルのVBEの代わりにもなるし。
VB2005の豊富な機能が、使えて、エクセルのVBE以上の事が出来ます。
今回の簡単な例では、VB2005の恩恵は、ほとんど感じませんが、
この次に、VB2005を使わないと、エクセルだけでは、大変な例を考えてみたいと思います。