* 日付を上手くコピーしたい。 [#s97ac1ad]
 |RIGHT:|LEFT:|c
 |~ページ|[[OpenOffice.org FAQの登録ページ]]|
 |~投稿者|0424|
 |~分類|#listbox3(Q&A,faq03,class)|
 |~優先順位|#listbox3(普通,faq03,priority)|
 |~状態|#listbox3(回答中,faq03,state)|
 |~状態|#listbox3(完了回答待ち,faq03,state)|
 |~カテゴリー|#listbox3(Calc 表計算,faq03,category)|
 |~投稿日|2009-05-19 16:53:29 (火)|
 |~OS|Windows XP|
 |~依存するページ||
 |~バージョン|#listbox3(3.1.1,faq03,version)|
 
 ** メッセージ [#g0babb9b]
 |LEFT:|c
 |回答ページでは行末に「~」を付加する必要はありません|
 インターネットのサイトで例えば、「2009/04/24」という日付をCalcにコピペし、
 カーソルを合わせると上のバーには「2009/04/24」と表示されるが、
 セルには「4月24日」と表示される。
 
 セルに「2009/04/24」と表示するにはどうしたら宜しいでしょうか。
 よろしくお願い致します。
 
 
 ----
 ***無題 [#s3064d74]
 >gorodoku (2009-05-19 17:00:18 (火))~
 ~
 ペーストしたセルのコンテキストメニュー【セルの書式設定】から分類【日付】、表示形式【1999/12/31】を設定すると実現可能と思われます。~
 
 //
 ***無題 [#y38d5d66]
 >0424 (2009-05-20 10:17:49 (水))~
 ~
 言葉足らずですみません!!~
 ~
 その方法でやることはできるのですが、~
 ペーストした時点で上手くコピーされる方法はないでしょうか。~
 宜しくお願いします。~
 
 //
 ***現状の解決策 [#idc0efdb]
 >M.Kamataki (2009-05-20 12:02:25 (水))~
 ~
 gorodokuさん、回答にご協力ありがとうございます。現状ですが、gorodokuさんの回答のように事後に書式を変更するか、事前に変更しておくしかありません。~
 ~
 なお、この問題は日付の標準書式が変更できないことが原因です。OpenOffice.orgの各国版のソースでハードコーディング(ようするに変更できない)されているため、ソースから変更しないと実現できない問題でもあります。~
 ~
 参考~
 -過去の議論~
 [Calc] 日付の形式をデフォルトで設定したい~
 http://search.luky.org/oo/openoffice.2003/threads.html#02487~
 ※英語(英国)ランゲージパックをインストールしロケールの切り換えで英語(英国)を選ぶとYYYY/MM/DDが日付の標準書式になるようです。~
 -IssueTrackerの要望~
 http://ja.openoffice.org/issues/show_bug.cgi?id=5556~
 http://ja.openoffice.org/issues/show_bug.cgi?id=18097~
 http://ja.openoffice.org/issues/show_bug.cgi?id=72324~
 
 //
 ***無題 [#k948345a]
 >gorodoku (2009-05-20 13:05:42 (水))~
 ~
 もともとデフォルトとする日付書式は変更できないんですね。~
 あまりお力になれなくてすみません。~
 ~
 ペーストの対象となる列が決まっていれば、先にその列全体の書式設定を行っておくとか。~
 あと、ペースト-書式の変更といった手順をマクロで記録しておいてボタンに割り当てるという手もありますが、あまりスマートじゃないですかね。~
 ためしに作ってみたのでサンプルを提示いたします。~
 #ref(日付貼付サンプル.ods)~
 
 //
 ***無題 [#t81dc957]
 >gorodoku (2009-05-20 13:46:59 (水))~
 ~
 連投すみません、肝心のマクロ部分が添付されてなかったかも、、、です。~
 改めて提示いたします。~
 皆様のほうでちゃんと見れてるかわからないので、不具合あったら教えてください〜~
 #ref(日付貼付サンプル-2.ods)~
 
 ちなみにコード的にはこんな感じらしいです。記録したままで、自分ではコードの整理をしてません、、、あしからず。
 
  dim document   as object
  dim dispatcher as object
  document   = ThisComponent.CurrentController.Frame
  dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
  
  dispatcher.executeDispatch(document, ".uno:Paste", "", 0, Array())
  
  dim args2(0) as new com.sun.star.beans.PropertyValue
  args2(0).Name = "NumberFormatValue"
  args2(0).Value = 36
  
  dispatcher.executeDispatch(document, ".uno:NumberFormatValue", "", 0, args2())
  
 //
 #article