tagCANDY CGI VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板 [ツリー表示へ]   [Home]
一括表示(VB6.0)
タイトルEXCELの作業中を強制終了させたい
記事No13184
投稿日: 2008/10/24(Fri) 18:58
投稿者イシ
EXCELで悩んでいます。皆様のお力をお借りしたく投稿させて頂きます。
EXCELを起動しセルを作業中(カーソル点滅状態)にしたままの状態で
プログラムを実行させると
"コンポーネントが作業中であるためこの操作を完了できません"
と表示されてしまいます。

私なりに考えて、ブックを閉じてから新規にブックを開こうとしましたが
作業中である場合、DisplayAlerts = Falseにしても警告画面が出てきてしまいます。

   For Each ex_wbook In xlApp.Workbooks     'ブック分ループ
     If ex_wbook.Name = "帳票.xls" Then     '帳票.xlsが起動中なら
       xlApp.DisplayAlerts = False          '問合せを非表示に設定
       ex_wbook.Close                        'Book を閉じる
       xlBook_flg = 1                       'フラグセット
     End If
   Next ex_wbook

VBから強制的にセルの作業中を終了させ、メッセージがでることなく
プログラムを動かすことはできないのでしょうか?
宜しくお願い致します。

[ツリー表示へ]
タイトルRe: EXCELの作業中を強制終了させたい
記事No13209
投稿日: 2008/11/06(Thu) 15:58
投稿者まつ
>    For Each ex_wbook In xlApp.Workbooks     'ブック分ループ
>      If ex_wbook.Name = "帳票.xls" Then     '帳票.xlsが起動中なら
>        xlApp.DisplayAlerts = False          '問合せを非表示に設定
>        ex_wbook.Close                        'Book を閉じる
>        xlBook_flg = 1                       'フラグセット
>      End If
>    Next ex_wbook
>
> VBから強制的にセルの作業中を終了させ、メッセージがでることなく
> プログラムを動かすことはできないのでしょうか?
> 宜しくお願い致します。

SendKeysを使うと終了させる事ができました。

For Each ex_wbook In xlApp.Workbooks            'ブック分ループ
    If ex_wbook.Name = "帳票.xls" Then          '帳票.xlsが起動中なら
        AppActivate "Microsoft Excel", True     'Excelをアクティブ
        xlApp.SendKeys "{ESC}", True            'ESCキーを送る
        xlApp.DisplayAlerts = False             '問合せを非表示に設定
        xlApp.ActiveWorkbook.Close              'Book を閉じる
    End If
Next ex_wbook

[ツリー表示へ]
タイトルRe^2: EXCELの作業中を強制終了させたい
記事No13211
投稿日: 2008/11/07(Fri) 11:35
投稿者イシ
ESCを使うことで上手くいきました。
ExcelのマクロでESCを試していたのですが
コード上でSendKeysは記述されず困っていました。
ありがとうございました。

[ツリー表示へ]