昨日エントリにUPしながらプロシージャを載せることができませんでした。一部あやふやなところがあって、思い出せなかったのです。本日は、プロシージャをコピーして帰り、簡略にしましたので、バッチリ!・・のはずです。
動作確認した状況
- Microsoft .NET Framework Version 2.0.50727
- Microsoft Visual Basic 2005(Microsoft Visual Studio 2005 Version 8.0.50727.762 Standard)
- Microsoft Office Excel 2003 SP2(Office Professional Edition 2003 の一部)---VBで参照設定をおこなう
- OS WindowsXP/SP2
Excelファイルを以下の条件で作成
- Sheet1、Sheet2、Sheet3のそれぞれのA1のセルに適宜な文字を配置
- そのExcelファイルを、ドライブC直下に、test.xls という名前で保存
VBでフォームをつくり、ボタンを配置し、ボタンをクリックしたら、test.xls を読みに行き、メッセージボックスで各シートのA1のデータを計3回表示する、というつくりです。
VBのプロシージャ
プロシージャの5行目ドライブC:の後、バックスラッシュに見えるかと思いますが、実際は円マークです。
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Imports Excel = Microsoft.Office.Interop.Excel
- Public Class Form1
- Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
- Dim xlApp As New Excel.Application
- xlApp.Workbooks.Open("C:\test.xls")
- xlApp.Visible = True
- Dim sheetCount As Integer
- sheetCount = xlApp.Sheets.Count 'シート数取得
- Dim cellData As String 'セルデータを受け入れる変数
- Dim i As Integer
- For i = 1 To sheetCount
- cellData = xlApp.Sheets(i).Cells(1, 1).text
- MsgBox(cellData) 'セルデータをメッセージボックスで表示
- Next i
- End Sub
- End Class
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Cells(1,1)の数字部分を変数にすれば適宜な範囲を指示できると思います。
稚拙なプロシージャですが、とりあえず動きました。もっとスマートな方法があるかもしれません。ご存知の方、コメントをおねがいします。ちょっとまずいんじゃないのこれでは、というのもあれば教えてください。
TAKA自宅では、VB、Excelともバージョンが違うので、うまく動きません。 VB=Express、Excel=2000、OS=XP/sp2