(現在 過去ログ43 を表示中)

HOME HELP 新規作成 新着記事 トピック表示 ファイル一覧 検索 過去ログ

[ 最新記事及び返信フォームをトピックトップへ ]

■6754 / inTopicNo.1)  クロスエクセル機能でエラーが出ます
  
□投稿者/ Numata -(2012/01/11(Wed) 10:28:25)
    いつも参考にさせていただいています。Win7、Excel2007、桐9-2012です。
    イベント内でクロスエクセル機能を使ったエクセル書き出しを行うと、&実行リターンに「244」が帰り、エラーとなります。

    イベント内でエクセル書き出しコマンドが1カ所のみの場合は正常に終了していますが、既存のエクセルファイルを桐表に変換し、編集後にエクセル書き出しで上書きしようとするとエラーになります。別名での出力でも同じように244を返してきます。

    目的は既存のエクセルファイルの内容を桐を使って編集したいというものですが、試しにと思い環境設定からクロスエクセル機能を使う設定のチェックを外してみると正常に終了しました。上書きでも別名でも正常なようです。

    上書きに失敗した元のエクセルファイルを見てみると、sheet名が「temp20120110・・・」などとなっているシートが追加されていました。
    エクセル書き出しの設定でシート名に漢字を使っていますのでそれが原因とも思いましたが、単純なエクセル書き出しコマンドでならクロスエクセル機能を使っても正常に終了しますが、イベント内で一度変換を行って以後に書き出しを行った場合に問題があるようです。
    ただし、クロスエクセル機能を使わない場合は問題が起きないようです。

    クロスエクセル機能を使う際の注意点などがあるのでしょうか。

    ただ、元のエクセルファイルはxlsです。出力したいファイルもxlsxではなくxlsにしたいのですが、この辺りに問題があるのでしょうか。


引用返信 [メール受信/ON] 削除キー/
■6756 / inTopicNo.2)  Excelファイル自体の不良でした
□投稿者/ Numata -(2012/01/11(Wed) 13:41:02)
    クロスエクセル機能は正常に動作していました。

    対象のExcelファイルが異常終了していたために、Excelの回復機能が動いていたためのエラーのようです。
    対象ファイルを削除して改めて作り直すと問題が出ないことから、ファイル自体に問題があったためにクロスエクセルでシステムエラーを出していたものと思われます。

    ご迷惑をおかけしました。






    No6754に返信(Numataさんの記事)
    > いつも参考にさせていただいています。Win7、Excel2007、桐9-2012です。
    > イベント内でクロスエクセル機能を使ったエクセル書き出しを行うと、&実行リターンに「244」が帰り、エラーとなります。
    >
    > イベント内でエクセル書き出しコマンドが1カ所のみの場合は正常に終了していますが、既存のエクセルファイルを桐表に変換し、編集後にエクセル書き出しで上書きしようとするとエラーになります。別名での出力でも同じように244を返してきます。
    >
    > 目的は既存のエクセルファイルの内容を桐を使って編集したいというものですが、試しにと思い環境設定からクロスエクセル機能を使う設定のチェックを外してみると正常に終了しました。上書きでも別名でも正常なようです。
    >
    > 上書きに失敗した元のエクセルファイルを見てみると、sheet名が「temp20120110・・・」などとなっているシートが追加されていました。
    > エクセル書き出しの設定でシート名に漢字を使っていますのでそれが原因とも思いましたが、単純なエクセル書き出しコマンドでならクロスエクセル機能を使っても正常に終了しますが、イベント内で一度変換を行って以後に書き出しを行った場合に問題があるようです。
    > ただし、クロスエクセル機能を使わない場合は問題が起きないようです。
    >
    > クロスエクセル機能を使う際の注意点などがあるのでしょうか。
    >
    > ただ、元のエクセルファイルはxlsです。出力したいファイルもxlsxではなくxlsにしたいのですが、この辺りに問題があるのでしょうか。
    >
    >
引用返信 [メール受信/OFF] 削除キー/
■6761 / inTopicNo.3)  やはり、書き出しでエラーが出ます
□投稿者/ Numata -(2012/01/13(Fri) 09:48:49)
    環境設定でクロス・エクセル機能を使用するとしている場合、エクセル書き出しで戻り値が244となります。
    このチェックを外して書き出しを行うと正常です。

    244となった場合のファイルの状態が添付jpgですが、もちろん1行目の項目名も2行目のデータ部も画面のようではありません。2行目などでは空白のセルにも「あいう」などと入っています。
    上書き=する とした場合は、既存ブックに添付と同じシートが追加されます。

    ただ、クロス・エクセル機能のチェックを外した状態でも、xlsxで書き出すとエラー1109となり、ファイルそのものが作られないようです。
    クロス・エクセル機能を使いたかったのは「文字列優先=する」を使いたかったためですが、チェックを外した状態でも書き出したデータは「文字列」となるようです。
    「文字列優先=しない」としたり、このパラメータを省略していると、書き出したデータは「標準」となっています。

    現況では、クロス・エクセル機能を使わないでxls形式でのみ書き出すことができる、となっています。
    目的は達成されていますので使用に問題はないのですが、クロス・エクセル機能を使えば問題が出るのは正常ではないと思われます。
    エクセル側の問題かとも思いましたが、どのような点をチェックすべきでしょうか。
315×192 => 250×152

capture-20120113-084429.jpg
/21KB
引用返信 [メール受信/OFF] 削除キー/
■6762 / inTopicNo.4)  Re[1]: クロスエクセル機能でエラーが出ます
□投稿者/ 通りすがり -(2012/01/13(Fri) 11:18:02)
    > イベント内でエクセル書き出しコマンドが1カ所のみの場合は正常に終了していますが、既存のエクセルファイルを桐表に変換し、編集後にエクセル書き出しで上書きしようとするとエラーになります。別名での出力でも同じように244を返してきます。

    クロスエクセル機能は非同期処理じゃないの?
    読み込み と 書き出し を別のボタンイベントにして、片方が終わってから次
    それでエラー出ますか?


引用返信 [メール受信/OFF] 削除キー/
■6766 / inTopicNo.5)  Re[2]: クロスエクセル機能でエラーが出ます
□投稿者/ Numata -(2012/01/13(Fri) 17:16:18)
    通りすがりさん、ありがとうございます。

    イベント内でエクセル読み込みや書き出しが1つだけの場合は、確かにうまく行きます。
    書き出しでも一つのファイルに複数シートの形で書き出そうとすると、書き出しコマンドの実行を複数回連続して行うことになりますから、この場合はエラーになります。
    やむなく、書き出すたびにエクセルを画面表示させ、手動で閉じてから次の書き出しコマンドを実行するようにしていますが、いかにも面倒です。

    今回の場合は、バックグラウンドのように、いわば操作者に気づかれることなく処理できればという思いもあって連続しての記述になっています。

    「読み込み→編集→書き込み」という流れで、エクセルファイルの中身を桐表に変換して必要な処理を加え、それを書き戻すことで見た目ではエクセルのデータが自動で編集されたという状況を作り出したいのです。

    エクセルの起動中の場合は桐側でも検知できるでしょうが、閉じたつもりでもメモリのどこかに残像あたりが残っているのかもしれないと思っています。
    ボタンイベントなどで処理を別々にすればこれが解決できるのかもしれないのですが、イベントの中からメソッドの実行を呼び出しても同じことになりますから、どうしても手動でやらざるを得ないことになりますので、これは目的とは違う動きになりそうです。

    結局のところは、データの受け渡しにエクセルを使うのが間違いだ、ということになるんでしょうか。

    読み込みが終わった時点で、「エクセルは使われていませんよ」と、桐側に教えてやれる方法があれば、続くエクセル書き出しのコマンドは動作するという気もしますが、無理でしょうか。

引用返信 [メール受信/OFF] 削除キー/
■6767 / inTopicNo.6)  Re[3]: クロスエクセル機能でエラーが出ます
□投稿者/ 通りすがり -(2012/01/14(Sat) 09:02:19)
    × クロスエクセル機能は非同期処理じゃないの?
    イベントは非同期処理だからクロスエクセル機能の終了を待ってられないんじゃないの?
    と感じたんだけど

    一括処理でもダメですかね?
    試してあげれる時間がなくてゴメンネ
引用返信 [メール受信/OFF] 削除キー/
■6771 / inTopicNo.7)  Re[4]: クロスエクセル機能でエラーが出ます
□投稿者/ Numata -(2012/01/15(Sun) 11:52:29)
    > イベントは非同期処理だからクロスエクセル機能の終了を待ってられないんじゃないの?

    そうだと思います。
    読み込みとか書き出しコマンドが1個だけなら問題なく動作していますから。

    タイマーをかますとかの方法で、いわば、桐をだます、みたいな工夫しか仕方ないのかもしれないですね。
    狙っている効果が「操作する人間に気付かれないで・・・」となると、ちょっと苦しい気がします。

    もう少し、いろいろと試してみます。
引用返信 [メール受信/OFF] 削除キー/
■6775 / inTopicNo.8)  Re[5]: クロスエクセル機能でエラーが出ます
□投稿者/ うにん -(2012/01/16(Mon) 11:32:44)
    No6771に返信(Numataさんの記事)
    >>イベントは非同期処理だからクロスエクセル機能の終了を待ってられないんじゃないの?
    >
    > そうだと思います。
    > 読み込みとか書き出しコマンドが1個だけなら問題なく動作していますから。

    クロスエクセルを使うかどうかと関係なく、エクセル書き出しを連続すると
    エラー233になるので、233の間は繰り返しで再試行すればいいでしょう。

    と思ったけど、233でなく244になるんですね。
    うちの環境でエクセルコマンドを実験したら、即座に桐がこけてしまい244は再現できませんでした。(Vista+2009a+Excel2007)
    会話処理で変換しても問題ないんですが...
引用返信 [メール受信/OFF] 削除キー/
■6779 / inTopicNo.9)  Re[6]: クロスエクセル機能でエラーが出ます
□投稿者/ 通りすがり -(2012/01/16(Mon) 13:17:45)
    いま、職場のPCで試したら、一括処理でしたら動きました
    VistaUltimate+2012+Excel2010

    エクセル "出納帳","1",表名="出納帳", 上書き=する,終了状態=&秒
    * ここの編集は不明なのでナシ
    エクセル書き出し "出納帳","1",上書き=する
引用返信 [メール受信/OFF] 削除キー/
■6780 / inTopicNo.10)  Re[7]: クロスエクセル機能でエラーが出ます
□投稿者/ Numata -(2012/01/16(Mon) 16:02:01)
    うにんさん、ありがとうございます。

    Excel起動中でのエラーなら233ですが、244というのは「システムエラー」のようですね。
    ところで、この"システム"って、桐なんでしょうか・・・、Excelなんでしょうか・・・
    233が返る前に、244が返ってしまっている、という状況なんでしょうか。

    通りすがりさん、お手間をおかけしています。

    こちらでは、WinXP-Excel2003とWin7-Excel2007で試しています。
    まだまだ2003は現役ですからこちらがうまく行かないようでしたら、ちょっと厳しいかなと思っています。
    WinXP-Excel2003の組み合わせでは、都合、3台のPCで試してみましたが、クロスエクセルのチェックを外しておけば問題なく、チェックを戻すと、全く同じ症状が出ます。
    "Temp2012・・・・"という名前のシートが、1回の実験ごとに増えていきます。
    ・・・、だから"システムエラー"なのかとも思います。

    一括処理ではまだ試していませんが、今の構想なら、イベントの中から一括処理を呼び出すことになるので、きっと同じでしょう。
    全く独立させるのなら、ボタンでも作っておいてクリックさせることになると思いますが、チェックを外しておけば問題が出ない今の状況では、わざわざクリックを要求するのもカッコの悪い話です。

    もう少し試してみて、どうしても解決しない場合は、サポートへ問い合わせ、となるのかもしれません。
引用返信 [メール受信/OFF] 削除キー/
■6781 / inTopicNo.11)  イベントのコードに問題がありそうです
□投稿者/ Numata -(2012/01/16(Mon) 16:32:24)
    手続き定義開始 実験()
    &STR="テスト"
    エクセル &STR, "テスト", 表名=&STR, 上書き=する, 終了状態=&実行リターン
    行追加 終了状態=&実行リターン, [年月日]="平成24年1月16日"
    エクセル書き出し &STR, "テスト", 項目名行=する, 上書き=する, 開く=しない, 終了状態=&実行リターン
    確認 #文字列(&実行リターン)
    手続き定義終了

    イベント内から上の手続きを呼び出せば、問題なく動作しました。

    ということは、4行目の処理が問題だ、ということになります。
    それも、システムエラーを出してしまうほどの困ったコードになっているということですね。

    お手数をおかけしてしまって申し訳ありませんでした。
    原因となった部分が特定できれば、改めて報告させていただきます。
引用返信 [メール受信/OFF] 削除キー/
■6782 / inTopicNo.12)  正常に動作しています
□投稿者/ Numata -(2012/01/16(Mon) 18:11:19)
    先ほどの処理の部分を、エラーとなっていたコードから1行ずつをコピーしてきて確かめていたんですが、
    結局はエラーにはならず、結果的には元のコードと同じものになってしまいました。

    訳がわからず、退避しておいたコードを走らせてみると、正常です。
    昨日の時点で、クロスエクセルにチェックを入れればエラーになっていたコードです。

    思い当たることは、クロスエクセルのチェックを外して使うしかないと思いましたから、表整理をしたくらいのことですが、もしかするとその過程で問題となっていた部分を修正して"しまった"のかもしれません。
    桐そのものからのエラーは返らず、ただExcel書き出しで実行リターンに244が返ってきていただけでしたので、Excelのファイルが壊れていたとも考えられますので、何回か作り直しはしました。
    それが正常に動くようになった理由かもしれません。
    それと、何回かは実行リターンに「1109」が返ってきていました。
    この内容がなんなのかは分かりませんが、このために、Excel側の問題かとも疑い、ファイルを作り直したり、PCの再起動をしたり、別のPCで試したりもしていたんですが、昨日、自宅のPCで試したときも244でしたので、今日、もう一度試してみたいと思います。
引用返信 [メール受信/OFF] 削除キー/
■6786 / inTopicNo.13)  Re[6]: クロスエクセル機能でエラーが出ます
□投稿者/ うにん -(2012/01/17(Tue) 13:18:33)
    > うちの環境でエクセルコマンドを実験したら、即座に桐がこけてしまい244は再現できませんでした。(Vista+2009a+Excel2007)

    これは、コマンド検索からペーストした後
    強制改行文字=""
    でやってたのが原因でした。
    桐ってこんなにもろかったっけ^^;
    ヘルプにはこのオプションが書いてないですね。

    結局233のエラーしか出ませんでした。
引用返信 [メール受信/OFF] 削除キー/
■6787 / inTopicNo.14)  空ファイルを書き出すと「244」エラーとなります
□投稿者/ Numata -(2012/01/17(Tue) 17:33:10)
    やっと、「244」エラーが出ました。
    空ファイルの書き出しでした。

    読み込んでから桐表でいろいろと編集作業をさせているんですが、場合によっては全データが削除され、空ファイルとなる場合があります。
    この時に、そのままエクセル書き出しを行うとシステムエラー「244」となります。
    恐らくは、桐2012とか、Excel2007などは、関係ないのでしょう。

    現況ではなかなか空ファイルになることはないのでエラーなしで動いているんですが、自宅の実験環境ではサンプルデータしか入れていませんでしたので、空ファイルになったものと思われます。

    ところで、この処理の目的が、
    Excelファイルの内容を桐で編集して、エクセル書き出しを行うことで結果的にExc"編集できた"、という状況を作り出したい
    というものですから、桐での編集後に空ファイルになれば、それを書き戻すことでExcelファイルも項目行だけにしたいという要求になります。

    ヘルプなどにもそのような記述はないようにも思えるんですが、
    これが、ダメとなると・・・

    どうも、根本的にやり方を変えていかないと無理なところに追い込まれそうなんですが、もしよろしければ、「空ファイルの書き出しが原因だ」と確認していただければうれしく思います。
引用返信 [メール受信/OFF] 削除キー/
■6788 / inTopicNo.15)  クロス・エクセルを使わなければOKです
□投稿者/ Numata -(2012/01/17(Tue) 17:48:25)
    「244」エラーが出ている状況で、クロス・エクセル機能のチェックを外してみました。
    問題なく、正常に、項目行だけのエクセルファイルが出力されていました。

    この問題は、エクセル書き出しコマンドによるものではなく、どうもクロス・エクセル機能の問題のような気がします。
引用返信 [メール受信/OFF] 削除キー/
■6789 / inTopicNo.16)  会話処理では書き出せないようです
□投稿者/ Numata -(2012/01/17(Tue) 18:19:15)
    連続投稿になり、申し訳ありません。

    会話処理で確かめてみたんですが、
    確かに空ファイルでは「エクセル書き出し」がグレー表示となり、使えないですね。

    おもしろい発見と、言えるのかもしれませんが、
    クロスエクセルのチェックを入れても外しても、空ファイルのエクセル書き出しは会話処理ではできませんが、コードに書いておけばできる、ということになってしまいますね。

    空ファイルを書き出すと言うことは、相手先のファイルをリセットする位の意味しかないと思いますし、実用としてはどうなんだろうという気もしますが、やろうとするなら不可能ではない、くらいのことになりますでしょうか。

    ただ、2012にバージョンアップしてせっかくクロスエクセル機能が使えるのに使わないことにするのも「なんだかな」の世界なんですが、
    何しろ、桐での編集作業の中には「項目名の変更」なんていうものまで入っていますから、あらかじめ空のExcelファイルを用意しておいて、データ全削除の時はファイルを丸ごと上書きコピーしてリセットされたように見せかける、という手も、なかなか使いづらいところなんです。
引用返信 [メール受信/OFF] 削除キー/
■6790 / inTopicNo.17)  Re[8]: 空ファイルを書き出すと「244」エラーとなります
□投稿者/ うにん -(2012/01/18(Wed) 16:38:56)
    > もしよろしければ、「空ファイルの書き出しが原因だ」と確認
    再現しました。
    会話処理の場合、補集合とか行集計は実行した後エラーになるんですが、エクセル書き出しは実行できませんね。
引用返信 [メール受信/OFF] 削除キー/
■6791 / inTopicNo.18)  Re[10]: 会話処理では書き出せないようです
□投稿者/ 通りすがり -(2012/01/18(Wed) 23:39:43)
    管理工学研究所に要望は出すとして、たぶん対応はされないと思うから、使う人が工夫すると

    編集後にレコード数がゼロの場合は、一時表ファイル作成を作成するとか
     全部文字列型で、項目名任意で、1レコードだけで、レコードデータは書き出す項目名

    エクセル書き出し 項目名行 = しない, 上書き = する
引用返信 [メール受信/OFF] 削除キー/
■6792 / inTopicNo.19)  見事に、空ファイルが書き出せました
□投稿者/ Numata -(2012/01/19(Thu) 09:02:44)
    工夫というのは、限界がないのですね・・・
    これはお手上げだなと腹をくくっていたんですが、見事に、結果的に空ファイルが書き出せています。
    通りすがりさん、本当にありがとうございました。
    うにんさんも、いつもながらですがお手間をおかけしてありがとうございました。

    そもそもは、このExcelファイルは最大でExcelで動いている単位システムを含む4つのシステムから参照される中間ファイルなので、CSVでも何でもかまわないんですが、Excelのシステム側で日付データを取り込むものですから、クロス・エクセル機能の「文字列優先」に飛び付いたわけです。
    「これなら強制的にExcelに日付文字列を渡せる」と。
    何しろExcelの自動型変換には何度も泣かされてきて、特に日付データなどは悲惨でしたから。

    もちろん、空ファイルが書き出せるようになったからと言っても、残念ですが、日付(のように見える文字列)をその通りにExcelに入れるのは至難のようです。
    「2012/01/19」を渡したいと思えば「"2012/01/19"」となったり「'2012/01/19」となったり・・・、「"」が邪魔です。
    Excel側の問題であり、どうしても何とかしたい場合は方法がないこともなさそうですが、思いっきり面倒です。

    とにかく、桐側ではせっかくのクロス・エクセル機能をカットしなくても良さそうですので、ひとまずはホッとしています。
    後は、何とか、Excelを騙す手を考えていきます。
    ありがとうございました。
解決済み!
引用返信 [メール受信/OFF] 削除キー/
■6793 / inTopicNo.20)  Re[12]: 見事に、空ファイルが書き出せました
□投稿者/ うにん -(2012/01/19(Thu) 11:19:34)
    >クロス・エクセル機能の「文字列優先」に飛び付いたわけです。
    なんでだろう。日時型で、「桐の表示形式を反映」されません。
    「ゼロ詰め・日まで」にしてるのに、「2011年10月 4日 0時 0分 0秒」のようになる。
    文字列優先すると=""が付くだけで、優先してなくても上記の形式のテキストになってます。

    >日付(のように見える文字列)をその通りにExcelに入れるのは至難のようです。
    > 「2012/01/19」を渡したいと思えば「"2012/01/19"」となったり「'2012/01/19」となったり・・・、「"」が邪魔です。
    「入力する」場合なら、先にセル書式を文字列にしておかないとだめなんでしょうね。
    CSV等を開くときはテキストファイルウィザードで列ごとに書式を指定できますが、
    桐から直接コピペ等すると指定する余地がないので日付に変換されてしまう。
引用返信 [メール受信/OFF] 削除キー/

次の20件>

トピック内ページ移動 / << 0 | 1 >>

[このトピックに返信]
Mode/  Pass/

HOME HELP 新規作成 新着記事 トピック表示 ファイル一覧 検索 過去ログ

- Child Tree -
- Antispam Version -