投稿時間:2007/06/06(Wed) 16:55 投稿者名:アキ
Eメール:
URL :
タイトル:「オブジェクト変数または With ブロック変数が設定されていません。」というエラーが出てしまいます。
OS:WindowsXP 開発:VB6.0 Excel2002
Excelのデータを編集するプログラムを作れと言われまして、初めてVBを扱いました。 文献やHPを見て、VBからExcelを操作するプログラムにしようと考えました。
A列の「Start」という文字が含まれるセルのある行から「End」という文字が含まれるセルのある行まで、B列の見つけた行の上の値をB列の前記の行にコピーするというものです。(説明が分かりづらくてすいません)
[プロジェクト]→[参照設定]→[Microsoft Excel 10.0 Object Library] にチェックを入れ、以下のようなコードを作りました。
Option Explicit Dim XLSBook As Object Private Sub Command1_Click() Dim Fname As String Dim num As Single Dim row1 As Integer Dim row2 As Integer
Set XLSBook = CreateObject("excel.application.10") With XLSBook.Application .Visible = True Fname = C:\Documents and Settings\User1\My Documents\book1.xls .Workbooks.Open (Fname) With .Workbooks(1).Worksheets(1) Do row1 = .Range("A:A").Find("Start", lookin:=xlValues).Row row2 = .Range("A:A").Find("End", lookin:=xlValues).Row num = .Cells(row1 - 1, 2) .Range(Cells(row1, 2), Cells(row2, 2)) = num Loop Until IsError(.Range("A:A").Find("Start", lookin:=xlValues)) = True End With End With Set XLSBook = Nothing Exit Sub End Sub
これを実行すると、タイトルのエラーメッセージが表示され、Doループがうまく回りません。デバッグすると、「row1 = .Range("A:A").Find("Start", lookin:=xlValues).Row」の部分が黄色く反転表示されます。 どなたか助言お願いいたします。
|