過去の桐井戸端BBS (桐ver.9) |
30084 | エクセル書き出しコマンドを2つ続けて実行すると「Excelが既に起動されています。」というエラーになる | 平川淳一 | 2005/05/30-07:03 |
いつもお世話になっています。 一括処理のプログラムで、下記のように実行すると 「Excelが既に起動されています。」と、エラーメッセージが出て2が実行出来ません。 一括処理でExcelを止めるにはどのようにすればよいのでしょうか? 宜しくご指導お願いします。 1 エクセル書き出し "A.xls" , "Sheet1", 項目名行=する, 上書き=する 2 エクセル書き出し "B.xls" , "Sheet1", 項目名行=する, 上書き=する | |||
30085 | Re:エクセル書き出しについて | うにん | 2005/05/30-09:30 |
記事番号30084へのコメント >「Excelが既に起動されています。」と、エラーメッセージが出て >2が実行出来ません。 >一括処理でExcelを止めるにはどのようにすればよいのでしょうか? 止めるんでなく前の処理が終わるまで待たないといけないのでは? | |||
30086 | Re:エクセル書き出しについて | コルネ | 2005/05/30-09:50 |
記事番号30084へのコメント 一括処理で直接エクセルを終了するのは出来ないので、 1と2の間で、シェル実行コマンドで外部プログラムを呼んで終了させるしかないかな。 エクセル付属のVBAで起動しているエクセルを終了する処理を書いて呼び出すとか。 | |||
30088 | Re:エクセル書き出しについて | 宮城 | 2005/05/30-09:58 |
記事番号30085へのコメント >止めるんでなく前の処理が終わるまで待たないといけないのでは? 私もそうだと思います。サイズにもよるでしょうが、5秒ほど待たせればほぼ大丈夫でしょう。 遅延 50 7000レコードの表で上記をはさめば両ブックとも書き出せました。 | |||
30090 | Re:エクセル書き出しについて | 平川淳一 | 2005/05/30-13:20 |
記事番号30088へのコメント >私もそうだと思います。サイズにもよるでしょうが、5秒ほど待たせ >ればほぼ大丈夫でしょう。 > >遅延 50 > >7000レコードの表で上記をはさめば両ブックとも書き出せました。 みなさま、早速のご投稿ありがとうございます。 フォームにコマンドボタンを貼り付け、それをクリックすることでの イベントを実行するようにしているのですが、イベントでは遅延コマンドは 使用できないのですが、どのようにすればよろしいのでしょうか? お知恵をお貸しください。 よろしくお願いします。 平川 | |||
30092 | Re:エクセル書き出しについて | コルネ | 2005/05/30-13:22 |
記事番号30086へのコメント あらあら、外しましたか スミマセン | |||
30093 | Re:エクセル書き出しについて | 平川淳一 | 2005/05/30-13:27 |
記事番号30092へのコメント コルネさんへ 早速のご投稿ありがとうございました。 終わらせるのでなく、終わるのを待たねばならないようですね? 待つ方法がまだ出来ないのですが、これからもご指導よろしくお願いします。 平川 | |||
30094 | Re:エクセル書き出しについて | 宮城 | 2005/05/30-13:44 |
記事番号30090へのコメント >イベントを実行するようにしているのですが、イベントでは遅延コマンドは >使用できないのですが、どのようにすればよろしいのでしょうか? あらま。 1.タイマーを使う。(あんまりやったことないのでどなたかお任せ) 2.繰り返しを使う。 繰り返し &秒=1,30000(こんなもんでは) 繰り返し終了 最後にひねくれたのも。 3.サウンド 再生,"適当なWAVファイル" Windowsディレクトリのmediaにある"chimes.wav"あたりでいかが? | |||
30096 | Re:エクセル書き出しについて | 宮城 | 2005/05/30-14:27 |
記事番号30094へのコメント >3.サウンド 再生,"適当なWAVファイル" イベントハンドラでは「非同期」指定できないのでムリですね。 すみませんでした。m(__)m | |||
30102 | Re:エクセル書き出しについて | うにん | 2005/05/30-16:29 |
記事番号30090へのコメント >イベントを実行するようにしているのですが、イベントでは遅延コマンドは >使用できないのですが、どのようにすればよろしいのでしょうか? 終了状態=233なら処理中の可能性が高いので、二回目以後は 繰り返し エクセル書き出し 〜〜,終了状態=&変数 条件 (&変数=0) 繰り返し中止 〜〜233以外のエラーの処理〜〜 繰り返し終了 みたいにするとか。 一定時間経っても233エラーなら中止するとかしないといけないでしょうけど。 一回目も(桐からでなくExcelを起動してるかもしれないので) 終了状態を見た方がいいでしょうね。 この話題は他にも終了状態があるとか、前にあったような気がしますが。。。 | |||
30103 | Re:エクセル書き出しについて | 平川淳一 | 2005/05/30-16:53 |
記事番号30102へのコメント 宮城さん、うにんさんありがとうございます。 繰り返し &秒1=1,30000 繰り返し &秒2=1,50 繰り返し終了 繰り返し終了 で、やっとエラーが出なくなり実行できるようになりました。 みなさまのご指導がなければ、出来ないと途中であきらめていたかもしれません。 桐のfor next文ですね。 なお、うにんさんのでも試してみます。 ありがとうございました。 これからもご指導よろしくお願いいたします。 平川 | |||
30104 | Re:エクセル書き出しについて | 悲しげ | 2005/05/30-21:29 |
記事番号30094へのコメント 「遅延」もどきなら http://www.fuku3.com/~habata/kbbs/kakov9/20338.htm 等も参考になるかも。 | |||
30107 | Re:エクセル書き出しについて | アックン | 2005/05/31-18:47 |
記事番号30103へのコメント 平川淳一さん、こんにちは。 > 繰り返し &秒1=1,30000 > 繰り返し &秒2=1,50 > 繰り返し終了 > 繰り返し終了 こうやって遅延動作させると、現状でうまく動作していても、 マシンをより高速なものに変更すると、うまくいかなくなる恐れがあります。 そこで、うにんさんと悲しげさんが提案されている手法をおすすめします。 アックン(=^・^=) | |||
30118 | Re:エクセル書き出しについて | miura | 2005/06/01-07:32 |
記事番号30084へのコメント 平川さん こちらを見られたらどうでしょうか http://www2u.biglobe.ne.jp/~s_tanaka/ekiri/index.htm |