モーグルとカバとパウダーの日記 このページをアンテナに追加 RSSフィード

モーグルやカバ(EXカービングスキー)、山スキー(BC)の山行記録などがメインの日記です。
いろんな条件のいろんなところを、その時々の条件にあった滑り方で楽しむ、フリースキーをして遊んでいます。

検索で来られた方は、上の検索窓から再度検索していただくか、右サイドバーのカテゴリーやトピックスの項目で絞り込んでみてください。
仕事柄、コンピュータ系のネタも多いので、スキー関連ネタだけ読みたい方は[ski]、コンピュータ関連ネタは[pc]、スパム関連ネタは[spam]で絞り込んでください。

2008-05-21 (Wed)

[]Excelマクロ(VBA)からCSV出力時の日付フォーマットのバグ Excelでマクロ(VBA)からCSV出力時の日付フォーマットのバグ - モーグルとカバとパウダーの日記 を含むブックマーク Excelでマクロ(VBA)からCSV出力時の日付フォーマットのバグ - モーグルとカバとパウダーの日記 のブックマークコメント

スケジュール管理用のExcelの表があって、それで出勤や経理上の処理をしてるのだけど、出勤予定をGoogleカレンダーで見たりリマインダーを使えるようにするため、CSVで出勤予定を出力し、Googleカレンダーインポートできるようなマクロを書いていました。

そのとき、Excelバグだと思われるものではまったので、メモ。


日付が例えば「2008/5/21」と「H20.5.21」と入っていた時、通常の手でオペレートした場合には、CSVの出力内容も画面上と同じ日付フォーマットで、「2008/5/21」と「H20.5.21」で出力されます。

ところが、これをマクロ(VBA)で記録してやり、マクロ経由で実行した場合には「5/21/2008」と「5.21.H20」というように「年」が後ろに来てしまう、アメリカなどで一般的な表示形式になってしまいます。

ちなみに最初Excel2000で作っていて判明したのですが、Excel2007で試しても起きました。


ほんとに?と思われた方は、簡単に試せるのでやってみてください。

  1. A1セルに「2008/5/21」などと入力します。
  2. マクロの記録、にします。
  3. 名前をつけて保存、で「CSV(カンマ区切り)」を選んで保存します。
  4. マクロの記録を終了します。
  5. 再度名前をつけて保存で、通常のマクロが有効なExcel形式で保存します。
  6. CSVで出力したファイルをファイル名を変更しておきます。
  7. CSVで出力したファイルをエディタで見ると「2008/5/21」と入っていると思います。
  8. マクロを実行して、新たにCSVで出力します。
  9. 新たに出力したファイルを見ると「5/21/2008」と入っていると思います。

ちなみに、この問題がどうしても解決できなかったのですが、Googleカレンダーはこの形式でも問題なく読んでくれたため、そのまま使うということで解決?しました。


(追記)

友人より教えていただきました。

[XL2000]SaveAsメソッドでテキストファイル保存すると書式が変更される

http://support.microsoft.com/kb/410237/ja

というわけでこれはマイクロソフト曰く、バグではなくて「仕様」らしいです。

でも、「すべての環境で同じ形式で保存されるための Excel の仕様による動作になります。」と言うのならば、手動でやった場合と記録したマクロでやった場合とで、同じ形式で保存される仕様のほうが普通だと思うんですけどね。


んで、2002以降だと

Local 引数に True を指定する

で回避できるとのこと。


だけどうちの環境だと、2000混在してるからそのコードは使えず。

この対処方法見て、なんで2007のマクロ記録の時、標準でつけないようにしてるんだろう?と思ったんだけど、後方互換性のためなんだろうな。



[][]自宅からは無線LAN経由で接続する携帯 自宅からは無線LAN経由で接続する携帯 - モーグルとカバとパウダーの日記 を含むブックマーク 自宅からは無線LAN経由で接続する携帯 - モーグルとカバとパウダーの日記 のブックマークコメント

自宅で無線LAN 屋外は携帯 ドコモが来月、新端末 :モバイルチャンネル - CNET Japan

以前書いてた運用形態の携帯(無線LAN対応携帯はほんとは若者向けに需要があるはず)が、一般向けに出る模様。

この種の端末が一般化してくると、(パケホーダイを契約していない)大人ももっと携帯からWebアクセスをするようになるんじゃないかと思う。

それでまた、携帯の利用のされかたが少し変わってくるんじゃないのかな?

あと、ますます固定電話不用な状況になってくるな。


(追記)

ケータイでIP電話がかけられる「ホームU」、ドコモが6月開始:モバイルチャンネル - CNET Japan

月額利用料金は1029円

うーむ、この料金では微妙だなあ…

まあ、最初はこんな感じでスタートか。

あと、音声じゃなくてi-modeのほうはどうなんだろ?そっちのほうが重要なのだが。


(さらに追記)

無線LAN対応、宅内のVoIPも使える「N906iL」

ホームUエリア内の無線LAN通信であれば、パケ・ホーダイ契約でもフルブラウザが無料で利用できる。またホームU経由のVoIPも可能で、ホームU同士の通話は24時間無料となる。VoIPサービス用に050番号が発行される。

無線LAN経由でフルブラウザ利用可能。

VoIPの場合はホームU同士だと24時間つなぎっぱなし可能。

docomoはまだいまいちふんぎれてない感じだが、これで、家にいるときはインターネット経由で携帯利用、という将来像が見えてきたな。

フレッツのみ、マルチセッション対応じゃないとダメで専用アクセスポイントがいるってことだから、docomoプロバイダやってるような感じになってるんだな。


(関連)

無線LAN対応携帯はほんとは若者向けに需要があるはず - モーグルとカバとパウダーの日記

manabumanabu 2008/05/21 15:14 マクロはセルの書式を勘案しないってことかな?
なんとなくそれはまあそういうもんかという気がするけど...

stealthinustealthinu 2008/05/21 16:01 いや、セルの書式自体は、ちゃんと日付として認識されて出力されます。
例えば「H20.5.21」はちゃんと日付として認識されているのですが、マクロからCSVで吐いたときだけ「5.21.H20」というように年を表すところだけが後ろに回されてしまいます。
なので、書式に対するロケールだけが無視されちゃう、という感じなのかなと思ってます。
そう考えると、¥とか$とかも影響受けそうな気がしたんですが、どうなのかな?

stealthinustealthinu 2008/05/21 17:50 教えてもらいました。
マイクロソフト曰く、バグじゃなくて「仕様」だそうです ;)

manabumanabu 2008/05/21 18:12 iPhone, iPhone, iPhone... > docomo の FMC :-)
頼むから来月でてくれ(笑).

#ああ,やっぱり :-) > 仕様

stealthinustealthinu 2008/05/22 12:37 iPhoneはよさげですよねえ。
iPhoneって無線LAN来てる環境だと、そっちからIPフォンでつなげてくれるんでしたっけ?

manabumanabu 2008/05/22 15:38 いえいえ,そんな FMC なことはしないですよ.(^^;
Jailbreak してなんかコード書けばできるのかもしれないけど.
ただ,やっぱそういう展開はあってもいいと思うしなあ.法人向けの FMC な電話ってなによりかっこわるくて持ち歩く気しないし.(^^;

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

リンク元