@IT会議室は、ITエンジニアに特化した質問・回答コミュニティ「QA@IT」に生まれ変わりました。ぜひご利用ください。
- PR -

【VB6.0】VBからExcel操作 2度目が失敗します。。

1
投稿者投稿内容
ひな
会議室デビュー日: 2005/07/05
投稿数: 7
投稿日時: 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
************************************
ちゃっぴ
ぬし
会議室デビュー日: 2004/12/10
投稿数: 873
投稿日時: 2006-01-25 03:13
まず、Select なんか使わないことが一番です。
Source を見た限りでは、Select をしなければならない理由はまったく見当たりません。

しかし、どうしても必要な場合には、親から順番に Select してやる必要があります。

xlBook.Activate
xlSheet.Select
xlSheet.Cells.Select

Cellを選択するには、このようにしてやる必要があります。

引用:
xlApp.Cells.Select



これわかっていて使ってますか?

Select, Activate を利用しない Coding は基礎中の基礎ですが、
これも似たようなもので、決して推奨されないやり方です。
1

スキルアップ/キャリアアップ(JOB@IT)