投稿日 | : 2007/07/28(Sat) 11:51 |
投稿者 | : のぞみ |
Eメール | : |
URL | : |
タイトル | : Re^2: エクセルがタスクマネージャに残ってしまいます。 |
おはようございます。早々の回答ありがとうございます魔界の仮面弁士様(^^)
魔界の仮面弁士様からご回答頂いたことにちょっと興奮気味です(^^)
そんな中、早速なのですが
> > Public DataPath , TargetFilePath , DefaultSheetName As String
> DataPath や TargetFilePath に As がありません。
> この場合、これらは既定のデータ型(初期設定では Variant)になってしまいます。
★すみません。本当は1つ1つ個別に〜As Stringで宣言しています。
(ここの文章を少しでも少なくしようと思い、そ〜書いてしまいました)
【A】
> > 4. Set xlApp = CreateObject("Excel.Application")
> こっちで呼ぶなら、Excel を参照設定する必要は無いかも。
> 参照設定を外して、変数を As Object に変更した場合はどうなりますか?
★参照設定のチェックを外し(ちなみにVer11.0)、xlApp、xlBook、xlSheet、ObjSheetを
〜As Objectにしてもダメでした。
(xlAppだけAs ObjectにするとxlBook、xlSheet、ObjSheetがそれぞれ『コンパイル エラー:
ユーザ定義型は定義されていません。』と怒られたので、順次As Objectに変更しました。)
【B】
> > 1. For Each ObjSheet In xlApp.Worksheets
> これだと、どのブックのシートなのかが曖昧になってしまうような。
> xlApp ではなく、xlBook の方を使うべきかと。
★For Each ObjSheet In xlBook.Worksheetsにしてもダメでした。
【C】
> > For〜xlBook.Worksheetsや単にFor〜Worksheetsなどに変えてみてもダメでした。
> For Each 〜 Next を For 〜 Next に変えてみるとどうですか? そうすれば、
> > 2. SheetNum = SheetNum + 1
> > 3. IF SheetNum > 6 Then
> シート数は Count プロパティで取れるので、ここでカウントする必要が無くなるかと。
★『For ObjSheet In xlBook.Worksheets』にしてRunしました。
コンパイルエラー・構文エラーとなりました。
エラーとなったので「シート数は Countプロパティで取れる」は確認していません。
尚、ObjSheet.Countでとれるのですか?
ObjSheet.と.打ったとき自動のメソッドやプロパティが出てこないのですが・・・(^^;A
> > 4. 処理
> この部分に問題があるという可能性はありませんか?
★無いと思います。原文の注記2および3にも書きましたが『For Each ObjSheet In xlApp.Worksheets』の
前後に終了処理を記述したとき、前置きの場合正常終了、すぐ後に終了処理を置いた場合
ダメだったので「処理」に行く以前の問題だと判断しています。
【A】と【B】を同時に処理してもダメでしたρ(--、)シクシク