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

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

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

■6794 / inTopicNo.21)  Excelが、勝手に日付型に変えてしまいます
  
□投稿者/ Numata -(2012/01/19(Thu) 11:55:48)
    > 「入力する」場合なら、先にセル書式を文字列にしておかないとだめなんでしょうね。

    そうとも言えないようです。
    Excel側で貼り付けるときに、まずそのセルを「文字列」に固定したつもりでも、貼り付けるデータが「日付に見える」場合は、Excelが勝手に日付型に変えてしまいます。
    VBAで1個ずつセルの書式設定をしておいても、同じです。
    普通のVBA命令ではこれを制御することはできないとのことですので、何かの裏技を使うしかないのでしょう。

    桐側から「文字列優先=する」で送っても、受ける時点でExcelが勝手に日付型に変えているようです。
    でなかったら、セル値が「"2012/01/19"」のようになってしまっています。
    これを文字列比較してみると、「2012/01/19」とは別物と判断されています。
    多分、日付型だからシリアル値と比較されているんでしょうね。この文字列とは確かに違いますから、イコールにはなりません。
    つまり、桐側での日付(のような文字列)は、そのままをExcelに持たせるのは、かなり難しそうです。

    桐の表示形式の反映でも、桐としては思ったように反映してくれるようにデータを送ってはいるんですが、Excel側はさらにその上を行って、何が何でも日付に"整形"しようとしているんじゃないかなと思います。
    そのため、セルに定義されている書式設定の通りに表示してしまうんじゃないでしょうか。

    Excelは、気軽に使える点では認められるんですが、唯我独尊というか・・・
引用返信 [メール受信/OFF] 削除キー/
■6795 / inTopicNo.22)  Re[14]: Excelが、勝手に日付型に変えてしまいます
□投稿者/ うにん -(2012/01/19(Thu) 16:25:22)
    >>「入力する」場合なら、先にセル書式を文字列にしておかないとだめなんでしょうね。
    >
    > そうとも言えないようです。
    > Excel側で貼り付けるときに、まずそのセルを「文字列」に固定したつもりでも、貼り付けるデータが「日付に見える」場合は、Excelが勝手に日付型に変えてしまいます。

    「入力する」と言ったのは、文字通りキーボードでデータを打ち込むという意味だったのですが
    うちの環境では、テキストをコピペしても文字列のままになってます。
    桐からコピーの場合も、貼り付け先を前もって文字列にしておけば文字列のまま入ります。
    桐でセルをコピーした場合、表で表示してた通りの書式(例えばYYYY-MM-DD)になりますが、複数行選択してコピーするとなりません。(YYYY/MM/DD HH:MM:SS)

    > 桐側から「文字列優先=する」で送っても、受ける時点でExcelが勝手に日付型に変えているようです。
    受ける時点というか、新規ファイルの場合は桐がゼロからファイルを作ってるので、受けるというより開いて表示する時ってことになるでしょうけど

    > でなかったら、セル値が「"2012/01/19"」のようになってしまっています。
    「="2012/01/19"」と「=」が付いてませんか?文字列定数を使った計算式を値にしてるはずですが。
    (こっちでは何故か年月日時分秒形式になってしまうのですが。)

    クロス・エクセルで書き出ししてたら、Excelがすでに起動されているのにエラーにならなかった...あれえ?
引用返信 [メール受信/OFF] 削除キー/
■6796 / inTopicNo.23)  Re[13]: 見事に、空ファイルが書き出せました
□投稿者/ うにん -(2012/01/19(Thu) 16:39:00)
    > なんでだろう。日時型で、「桐の表示形式を反映」されません。
    > 「ゼロ詰め・日まで」にしてるのに、「2011年10月 4日 0時 0分 0秒」のようになる。
    > 文字列優先すると=""が付くだけで、優先してなくても上記の形式のテキストになってます。

    よく見たら
    >書式反映 = する|しない
    >小数部の表示桁数、負符号、通貨記号を桐の表示形式と同じにして書き出す
    だから、日付の形式は指定できないんですね^^;
    計算項目を使うとかしかないのか...
    "="""+#日付([日時型],1)+""""
    で文字列優先を指定したのと同じようになる。
引用返信 [メール受信/OFF] 削除キー/
■6797 / inTopicNo.24)  文字列が、文字列のままで書き出されています
□投稿者/ Numata -(2012/01/19(Thu) 18:33:23)
    何が、どうなっているのかよく分からないんですが、
    もう1回確認と思って動かしてみると、何の問題も起きません・・・

    日付データを含むExcelファイルを桐表に変換してから、念のために項目属性変更をして文字列に固定するのは以前から措置していたことだし、今回触ったのは、試しと思ってエクセル書き出しのクロスエクセル部分のパラメータ3個を付けたり削ったりしただけです。

    ちなみに、文字列優先をするにしてもしないにしても、パラメータを書いても書かなくても、結果は同じで、日付データを含めて全く問題が見つかりません。
    ついででもないんですが、上書き後のExcelファイルの日付に見えるセルは、きっちりと「文字列」型になっています。
    そのすぐ下のセルに「1/19」などとキーボード打ち込みをしてみると、見事に「2012年1月19日」となりました。そういう書式ですから。もちろん、値は「2012/1/19」です。
    ついでのついでですが、元のセルの「2012/01/19」を日付型の書式に変更しても反映されません。入っているのはシリアル値ではなく、まさに「2012/01/19」という文字列だからでしょう。

    どうなってるんでしょう・・・
    空ファイルの件が解決してもこれが残るから、まだ先は長いと思っていましたが・・・

    ただ、この何回かの実験の途中で、突然「桐を停止します」と言われてしまいました。
    桐を再起動させれば同じように実験は続けられましたから、謂わば"良くあること"とも思いますが、何かしら、おかしいのかもしれません。

    空ファイルで悩んでいた時は、上書きが成功したファイルを見ると「1/19/2012」になってみたり、「="2012/01/19"」になってみたり、「2012/1/19」になってみたりと、どんなパターンでどんな風になるのかメモもとりにくい状態でしたのに・・・

    とにかく、もう少し様子を見る必要がありそうです。

    それと、Excel起動中でエクセル書き出しが成功した事例は、イベントでも会話処理でもダメでしたね。どっちも、エラー233でアウトでした。
引用返信 [メール受信/OFF] 削除キー/
■6801 / inTopicNo.25)  日付文字列のエクセル書き出しも正常です
□投稿者/ Numata -(2012/01/20(Fri) 11:16:36)
    日付様の文字列(2012/01/20)を桐からエクセル書き出しを行う実験をいくつか試してみましたが、書き出し後のExcelファイルには日付文字列ではなく文字列そのものとして書き出されていました。セルの型も文字列型です。
    クロスエクセル機能はOnにしていますが、エクセル書き出しには文字列優先などのパラメータは記述していません。

    エクセル書き出しというコマンドに関して、なんの問題もないということになります。
    ただ、クロスエクセル機能はExcel2007とか2010向けの機能強化だと思いますが、今日の実験はExcel2003です。

    書き出し後のセル値が「="2010/01/20"」になったり「1/20/2010」になったりで困っていたんですが、
    コマンドの動作以外の問題があったのでしょう。
    この時は空ファイルのエクセル書き出しで躓いていた頃のことで、意識がセル値よりも書き出しエラーの方に向いていましたから。

    次に、同じようにセル値で問題が起きたときに、別件として改めてお尋ねさせていただきたいと思います。
解決済み!
引用返信 [メール受信/OFF] 削除キー/

<前の20件

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

このトピックに書きこむ

過去ログには書き込み不可

Mode/  Pass/

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

- Child Tree -
- Antispam Version -