VB情報:Excel操作時の注意事項
●VBからExcel操作を行う回数に制限がある。(Visual Basicのバグみたい)
・32768回
現象:VBからExcelを操作できる回数(ExcelApp.XXXの数)である。
この回数を超えると、Excelが固まりVBに戻らなくなる。
回避:Excelのプロセスを殺すとVBにエラーで戻れる。
・16384回
現象:VBからExcelを操作して、最後にExcelを表示にする処理を
作成した場合に、表示にしたExcelを終了しても、
Excelのプロセスが非表示で裏に残ってしまう。
回避:Excelのプロセスを殺すしかない。
*根本的な回避策は無いので、16384回を超えないように作成するしかない。
◎お試し方法
32768回の方は、ループさせて試してみると良くわかります。
16384回はちょっとわかりにくいです。この近辺で試してみて。
Excelが固まったら、Excelプロセスを殺せばVBに戻れます。
●VBでExcel操作中に出る以下のMSGを出ないようにする方法
┌─────────────────────────────┐
│他のアプリケーションがサーバを使用しているため、この操作を│
│完了できません。操作を続けるには、「切り替え」ボタンを選択│
│して、他のアプリケーションを終了させて下さい。 │
│ [切り替え] [再試行] [キャンセル] │
└─────────────────────────────┘
OLEの時間を設定する。
App.OleServerBusyRaiseError = True
App.OleRequestPendingTimeout = 600000 'タイムアウト600秒
Excel操作処理
App.OleRequestPendingTimeout = 5000 '念のため、デフォルトに戻す
App.OleServerBusyRaiseError = False
●xls,csvファイルをダブルクリックしてもExcelが起動されない。
●ダブルクリックでExcelは起動されるが、ファイルを開いてない。
●アプリケーションから開くでExcelを指定して開いても開けない。
よくわからないが、レジストリが壊れているようです。
一度レジストリをきれいに消して、再度関連付ければ直ります。
きれいに消さないと何処かがおかしいままのため簡単には直りません。
以下CSVの場合の実施方法です。
読んでわからない人は誰かに相談した方が良いです。
@レジストリエディタを起動します。
Aキー「HKEY_CLASSES_ROOT\.csv」のバックアップを取ります。
Bキー「HKEY_CLASSES_ROOT\.csv」を完全に消します。
Cレジストリエディタを終了します。
Dエクスプローラを起動しCSVファイルを選択します。(ダブルクリックではありません)
E「Shift」を押しながら、CSVファイルの上で右クリックします。
F右クリックメニューの「アプリケーションから開く」という項目を選択します。
G「ファイルを開くアプリケーションの選択」ダイアログより、「EXCEL」を選択します。
H「この種類のファイルを開くときは、いつもこのアプリケーションを使う」に
チェックを入れます。
I「OK」を押します。
これで駄目ならExcelを再インストールする。
1ページ前に戻る Topへ