- - PR -
【VB6.0】VBからExcel操作 2度目が失敗します。。
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2006-01-25 01:39
プログラムを実行中、1度目の処理では何事もなく実行完了しますが
そのまま続けてもう一度処理しようとすると 下記★の箇所でエラーが発生します。 エラー内容は、With等オブジェクトがないとのこと。。 たしかに、デバッグでTypeName(Selection)を見てますが 2回目はNothingになっています。 オブジェクトがないからエラーなのかと思うのですが 解決方法がわかりません。 ご教授頂ければ幸いです。 やりたいことは、 VBからエクセルを開いて 全セルを文字列型に変換 書き込み エクセル閉じる、です。 ************************************ '変数にオブジェクトの参照を代入 'Add メソッドを使って新規 workbookとworksheet オブジェクトを作成 Set xlApp = CreateObject("Excel.Application") Set xlBook = xlApp.Workbooks.Add Set xlSheet = xlBook.Worksheets(1) 'エクセル表示 xlApp.Visible = True … エクセルに書き込み … '全セル文字型属性指定 xlSheet.Cells.Select MsgBox "選択されているオブジェクト型は" & TypeName(Selection) '★2回続けて処理を行おうとすると、ここで↓エラー発生 Selection.NumberFormatLocal = "@" MsgBox "選択されているオブジェクト型は" & TypeName(Selection) '入力データの幅にセルの幅を広げる xlApp.Cells.Select xlApp.Cells.EntireColumn.AutoFit xlSheet.Range("A1").Select 'Worksheetを名前をつけて保存 xlSheet.SaveAs "ファイルパス名" 'Excel終了 xlApp.Quit 'オブジェクト解放 Set xlSheet = Nothing Set xlBook = Nothing Set xlApp = Nothing ************************************ | ||||
|
投稿日時: 2006-01-25 03:13
まず、Select なんか使わないことが一番です。
Source を見た限りでは、Select をしなければならない理由はまったく見当たりません。 しかし、どうしても必要な場合には、親から順番に Select してやる必要があります。 xlBook.Activate xlSheet.Select xlSheet.Cells.Select Cellを選択するには、このようにしてやる必要があります。
これわかっていて使ってますか? Select, Activate を利用しない Coding は基礎中の基礎ですが、 これも似たようなもので、決して推奨されないやり方です。 |
1