1月 2007 - Posts

Excel 2007 の CSV と 文字エンコーディング の関係

この記事は Excel 2003 の CSV と 文字エンコーディング の関係 の改訂版です。
改訂前の記事は Excel 2003 ベースですが、YamaKenさんから Excel 2007 だとどうなるのかとの旨コメントを頂きました。
Yamakenさん、ありがとうございます。

カンマ区切り、タブ区切りそれぞれのテキストファイルを Excel 2007 で開いたときの挙動をまとめました。

先に結果を言うと、ほとんどの場合 Excel 2007 は Excel 2003 と同じ挙動を示します。
違う挙動を示すのは BOM 無しの Unicode を扱うときで、Excel 2003 のときに発生していた「このファイル形式を認識できません。」というエラーメッセージが表示されなくなっています(Excel 2003 と違う挙動を示した結果には行頭に ! を付けました)。
エラーメッセージが表示されなくても文字化けは起きるので、これは改善とはいえないです。

前回は Windows XP、今回は Windows Vista を使用して作業を行っています。
OS によって挙動が異なるということはあるかもしれません。

 

調査に使用した環境です。

  • Windows Vista Ultimate RTM
  • Excel 2007 RTM

調査に使用したテキストファイルのエンコーディングは以下の5種です。

  • Shift_JIS(CP932) 形式
  • UTF-7 形式
  • UTF-8 形式 (BOM 有り・BOM 無し)
  • UTF-16 LE 形式 (BOM 有り・BOM 無し)
  • UTF-16 BE 形式 (BOM 有り・BOM 無し)

CSVファイルの改行方法は全て CR+LF です。
カンマ区切り、タブ区切り共に拡張子は csv としました。
文字に引用符は付けていません。

UTF-7, UTF-8, UTF-16 の各 Unicode ファイルには Shift_JIS には存在しない文字として ㎥(立方メートルの記号) を含めています。

----- Shift_JIS(CP932) と UTF-7 -----
カンマ区切りのファイルをダブルクリックして Excel 2007 で開いたとき

Shift_JIS : 区切り文字を認識して問題なく開く。
UTF-7 : 区切り文字を認識して開く。文字化けする。

タブ区切りのファイルをダブルクリックして Excel 2007 で開いたとき

Shift_JIS : 開くが、区切り文字が認識されない。文字化けしない。
UTF-7 : 開くが区切り文字が認識されない。文字化けする。

カンマ区切りのファイルを Excel 2007 の[開く]メニューから開いたとき

Shift_JIS : 区切り文字を認識して問題なく開く。
UTF-7 : 区切り文字を認識して開く。文字化けする。

タブ区切りのファイルを Excel 2007 の[開く]メニューから開いたとき

Shift_JIS : 開くが区切り文字が認識されない。文字化けしない。
UTF-7 : 開くが区切り文字が認識されない。文字化けする。

カンマ区切りのファイルを Excel 2007 の [外部データの取り込み]メニューから開いたとき

Shift_JIS : [テキスト ファイル ウィザード] が起動する。「932 : 日本語 (シフト JIS)」として認識される。文字化けしない。
UTF-7 : [テキスト ファイル ウィザード] が起動する。「65000 : Unicode (UTF-7)」として認識される。文字化けしない。㎥(立方メートルの記号) は表示される。

タブ区切りのファイルを Excel 2007 の [外部データの取り込み]メニューから開いたとき

Shift_JIS : [テキスト ファイル ウィザード] が起動する。「932 : 日本語 (シフト JIS)」として認識される。文字化けしない。
UTF-7 : [テキスト ファイル ウィザード] が起動する。「65000 : Unicode (UTF-7)」として認識される。文字化けしない。㎥(立方メートルの記号) は表示される。

----- Unicode BOM 有り -----
カンマ区切りのファイルをダブルクリックして Excel 2007 で開いたとき

UTF-8 : 開くが区切り文字が認識されない。文字化けする。
UTF-16 LE : 開くが区切り文字が認識されない。文字化けしない。㎥(立方メートルの記号) は表示される。
UTF-16 BE : 開くが区切り位置が目茶苦茶。文字化けする。

タブ区切りのファイルをダブルクリックして Excel 2007 で開いたとき

UTF-8 : 開くが区切り文字が認識されない。文字化けする。
UTF-16 LE : 区切り文字を自動で認識して問題なく開く。
UTF-16 BE : 開くが区切り位置が目茶苦茶。文字化けする。

カンマ区切りのファイルを Excel 2007 の[開く]メニューから開いたとき

UTF-8 : [テキスト ファイル ウィザード] が起動する。「65001 : Unicode (UTF-8)」として認識される。文字化けしない。㎥(立方メートルの記号) は表示される。
UTF-16 LE : [テキスト ファイル ウィザード] が起動する。「932 : 日本語 (シフト JIS)」として認識される。文字化けしない。㎥(立方メートルの記号) は表示される。
UTF-16 BE : 開くが区切り位置が目茶苦茶。文字化けする。

タブ区切りのファイルを Excel 2007 の[開く]メニューから開いたとき

UTF-8 : [テキスト ファイル ウィザード] が起動する。「65001 : Unicode (UTF-8)」として認識される。文字化けしない。㎥(立方メートルの記号) は表示される。
UTF-16 LE : [テキスト ファイル ウィザード] が起動する。「932 : 日本語 (シフト JIS)」として認識される。文字化けしない。㎥(立方メートルの記号) は表示される。
UTF-16 BE : 開くが区切り位置が目茶苦茶。文字化けする。

カンマ区切りのファイルを Excel 2007 の [外部データの取り込み]メニューから開いたとき

UTF-8 : [テキスト ファイル ウィザード] が起動する。「65001 : Unicode (UTF-8)」として認識される。文字化けしない。㎥(立方メートルの記号) は表示される。
UTF-16 LE : [テキスト ファイル ウィザード] が起動する。「932 : 日本語 (シフト JIS)」として認識される。文字化けしない。㎥(立方メートルの記号) は表示される。
UTF-16 BE : [テキスト ファイル ウィザード] が起動する。「Windows (ANSI)」として認識される。文字化けする。

タブ区切りのファイルを Excel 2007 の [外部データの取り込み]メニューから開いたとき

UTF-8 : [テキスト ファイル ウィザード] が起動する。「65001 : Unicode (UTF-8)」として認識される。文字化けしない。㎥(立方メートルの記号) は表示される。
UTF-16 LE : [テキスト ファイル ウィザード] が起動する。「932 : 日本語 (シフト JIS)」として認識される。文字化けしない。㎥(立方メートルの記号) は表示される。
UTF-16 BE : [テキスト ファイル ウィザード] が起動する。「Windows (ANSI)」として認識される。文字化けする。

----- Unicode BOM 無し -----
カンマ区切りのファイルをダブルクリックして Excel 2007 で開いたとき

UTF-8 : 開くが区切り文字が認識されない。文字化けする。
! UTF-16 LE : 開くが、区切り位置、内容共に目茶苦茶。
! UTF-16 BE : 開くが、区切り位置、内容共に目茶苦茶。

タブ区切りのファイルをダブルクリックして Excel 2007 で開いたとき

UTF-8 : 開くが区切り文字が認識されない。文字化けする。
! UTF-16 LE : 開くが、区切り位置、内容共に目茶苦茶。
! UTF-16 BE : 開くが、区切り位置、内容共に目茶苦茶。

カンマ区切りのファイルを Excel 2007 の[開く]メニューから開いたとき

UTF-8 : 開くが区切り文字が認識されない。文字化けする。
! UTF-16 LE : 開くが、区切り位置、内容共に目茶苦茶。
! UTF-16 BE : 開くが、区切り位置、内容共に目茶苦茶。

タブ区切りのファイルを Excel 2007 の[開く]メニューから開いたとき

UTF-8 : 開くが区切り文字が認識されない。文字化けする。
! UTF-16 LE : 開くが、区切り位置、内容共に目茶苦茶。
! UTF-16 BE : 開くが、区切り位置、内容共に目茶苦茶。

カンマ区切りのファイルを Excel 2007 の [外部データの取り込み]メニューから開いたとき

UTF-8 : [テキスト ファイル ウィザード] が起動する。「65001 : Unicode (UTF-8)」として認識される。文字化けしない。㎥(立方メートルの記号) は表示される。
UTF-16 LE : [テキスト ファイル ウィザード] が起動する。「932 : 日本語 (シフト JIS)」として認識される。文字化けする。
UTF-16 BE : [テキスト ファイル ウィザード] が起動する。「932 : 日本語 (シフト JIS)」として認識される。文字化けする。

タブ区切りのファイルを Excel 2007 の [外部データの取り込み]メニューから開いたとき

UTF-8 : [テキスト ファイル ウィザード] が起動する。「65001 : Unicode (UTF-8)」として認識される。文字化けしない。㎥(立方メートルの記号) は表示される。
UTF-16 LE : [テキスト ファイル ウィザード] が起動する。「932 : 日本語 (シフト JIS)」として認識される。文字化けする。
UTF-16 BE : [テキスト ファイル ウィザード] が起動する。「932 : 日本語 (シフト JIS)」として認識される。文字化けする。

Posted by Ryosuke Uemoto | 3 comment(s)
Filed under:

セミナー : Office ユーザーのための 「超!!」 情報活用講座

2月から3月にかけて 札幌仙台東京名古屋大阪広島福岡の各都市で AccessExcel を日頃使っているユーザーを対象に、SQL Server 2005Office System とを組み合わせて活用する方法を紹介するセミナーが開催されます。無料です。

Access から SQL Server へのアップサイジングBI (ビジネスインテリジェンス) を中心に話が進むようです。

私は3月8日の広島会場に参加します。

Windows と Office の対応表

いよいよ今月末から Windows Vista と 2007 Microsoft Office System の発売が開始されます。

待ちに待った瞬間ですが、新しい Windows が登場する度、新しい Office が対応する度に正しく動作する Windows と Office の組み合わせを気にかけなくてはいけないので大変です。

そういった負担を感じているひと向けにマイクロソフトは特定のバージョンの Office 製品がどのバージョンの Windows に対応しているのかを公表しています。

気をつけなくてはいけないのは、マイクロソフトは「サポート ライフサイクルが終了した Office 製品は、ライフサイクル の メイン ストリーム サポート期間が終了したあとでリリースされた OS とそのサービス パック上での動作検証は行っていない」ということです。

今回のタイミングでは、Office 97 と Office 2000 の製品群はメインストリームのサポート期間が終了しているために Windows Vista で動作検証は行われていません。

公式に動作検証が行われないイコール動かないという訳ではありませんが、ユーザー自らが手持ちのリソースを駆使して動作検証を行うことができないのであれば、公式に動作が確認されている組み合わせて運用するのが安全だと思います。

Posted by Ryosuke Uemoto | with no comments
Filed under:

T/sec という単位を知りました

5GT/secの「PCI Express 2.0」正式版仕様が決定 というニュースで T/sec という単位を知りました。

bps (ビーピーエス: Bits Per Second) なら知っているけど T/sec ってなんだ?

調べていくうちに PCI SIG、「PCI Express 2.0」を正式発表--転送速度は5Gbpsに という記事にたどりつきました。
この記事を引用します。太字は私が付けました。

PCI Expressとは、1990年代に登場して以来ほぼすべてのサーバやパソコンに採用されてきたPCI (Peripheral Component Interconnect)規格をもとに新技術への対応を行った後継規格で「レーン」1本あたり2.5Gbpsの転送ができる。レーンとは、導線やピンなどを用いたコンピュータとプラグインデバイスの間の電気的な接続のこと。PCI Express 2.0ではこれが倍の5Gbpsになる。従来のPCI Expressと同様、複数のレーンを束ねて使うことができる。

ここから T/sec の T は Transfer (転送) の略ではないかと思ったのですが、合っていますか?

Posted by Ryosuke Uemoto | with no comments

SQL Server 2005 Express Edition : データベースの容量が 4GB に制限される その2

以前投稿した SQL Server 2005 Express Edition : データベースの容量が 4GB に制限される にmattakeさんからコメントを頂きました。

> 実際には mdf ファイル毎に 4GB の容量制限があります。
試してみました。
SQL Server では、インスタンス内の各データベースに対して複数の mdf ファイルを追加できます。
そのため、もし容量制限が mdf ファイルに対するものだとすると、
4GB を超えるデータベースが作成できてしまうことになります。
実際には、累積サイズが 4GB を超えるような複数の mdf ファイルを 1 つのデータベース内に作成しようとするとエラーになりますので、
「データベースの最大容量が 4GB」という表現がやはり正しいと思います。
ただし、インスタンス内に複数のデータベースは作成できますし、
データベース内のログファイル(ldf ファイル)も 4GB の上限とは別で作成できるようです。

mattakeさん、ありがとうございます。

ちなみに、SQL Server が制限容量の超過時に出力するエラーメッセージがこれです。

データベース 'データベース名' にオブジェクト 'dbo.テーブル名'.'PK_テーブル名' の領域を割り当てられませんでした。'PRIMARY' ファイル グループがいっぱいです。不要なファイルの削除、ファイル グループ内のオブジェクトの削除、ファイル グループへの新しいファイルの追加、またはファイル グループの既存のファイルの自動拡張の設定のいずれかを行ってディスク領域を作成してください。

このエラーメッセージとmattakeさんから頂いたコメントとを併せて情報をまとめると以下のようになると思います。

SQL Server 2005 Express Edition ではデータベースの最大容量は 4GB に制限される。
厳密には個々のデータベースを構成する「PRIMARY ファイルグループ」に容量の制限が適用される。
「PRIMARY ファイルグループ」は「1つの mdf ファイル」だけで構成される場合もあり、「1つの mdf ファイル + 複数の ndf ファイル」で構成される場合もある。

いかがでしょうか。
ご意見ご指摘お待ちしています。

#これは SQL Server 2005 Express Edition でデータベースの容量が4GBを超えたときの挙動中さんから頂いたコメントに対する回答にもなっている、の、かな?

Posted by Ryosuke Uemoto | with no comments

私宛にメールを送信したのに私から返事がないという方へ

私のメールアドレス (ms-18eアットalbis.jp) 宛にメールを送信したのに私から返信が無いという方、ご迷惑をおかけしております。無礼をお許しください。

現在いくつかのドメインから送信されたメールが私のメールボックスに到着しないという不具合が発生しています。

お手数をおかけ致しますが、私宛てにメッセージがある方は当ブログの連絡先フォームをご利用ください。
連絡先フォームは正常に機能しています。

オンラインの活動に関するご連絡はわんくま同盟のメールアドレス (ueアットwankuma.com) にお願いします。

以上、よろしくお願いします。

Posted by Ryosuke Uemoto | with no comments

なるべく良い質問者であるために

小板さんのブログに「良い質問者とは」というお題で投稿があります。

小板さんは「良い質問者」を「回答者にとって回答しやすい質問ができる人」と定義しておられます。
表現を変えると「ゴールと問題点が明確な質問は的確な回答に繋がる」ということになると思います。

リンク先で小板さんも言及しておられますが、新しいことにチャレンジしている最中には「自分が何がわからないのかがわからない」状況に苦しむことがあります。

そんなときには、有用であるはずのドキュメントの存在を知っていてもそのどこを読めば良いのか分らず、その技術に明るいコミュニティの存在を知っていてもどういう表現で質問したら良いものか分りません。

お先真っ暗で八方塞がりに思える状況ですが、ここで思考を停止し安易に助けを求めると「迷惑な質問者」になってしまいます。迷惑な質問は回答にかかるコストが高いために的確な回答が付きにくく、質問者を含めて誰も幸せになりません。
これはとても不幸なことです。

そんな状況でなるべく良い質問をするためには、何はともあれ、「何をしたかったのか」「どうなれば満足なのか」「どういう状況で何をしたらどうなったのか」を明確にすることが肝心です。
それらが明確になれば、質問に使うべき表現がかたちになってきます。

回答者と気持ちよくコミュニケーションするために投稿マナーや各コミュニティのルールを尊び守るのは大切なことですが、それに加えて、質問の内容そのものを洗練することで得られるものは大きいということを意識できれば素敵です。

Posted by Ryosuke Uemoto | with no comments

企業間連携のシステムは品質の確保がむずかしい

先日、私が開発を担当したプログラムでエラーが発生したとの連絡をお客様から頂きました。

エラーの内容は、データの入力時にデータベースで制約違反が発生したというものであり、入力元のデータに仕様に違反するデータが紛れ込んでいたことが原因でした。

入力元のデータはお客様が外部から受信する電子データであり、データが仕様と違うということを送信元に報告はできでも発生の原因を直接調査することはできません。

そういった状況下で効果的な取り組みというのは何であろうかと考えています。
まずは、エラーの発生から私へ連絡が届くまでの時間短縮に挑戦してみようと思います。
何にしろ、報告が早いほど適切な対応をとることが容易だからです。

外部から受信するデータの品質は保証できないよ、仕様と違うデータが到着するかもしれないよ、という企業間連携の難しさを再認識した事件でした。

Posted by Ryosuke Uemoto | with no comments

昨年広島で開催中止になったマイクロソフトのセミナーが振り替え開催されます

昨年の11月ごろ広島で開催される予定が中止になってしまったマイクロソフトのセミナーが、この2月に振り替え開催されることになったようです。

どのセミナーも会場は「広島 マイクロソフト中四国支店 8F セミナールーム」です。
--訂正--
「Systems Management Server 2003 R2 構成・更新管理、資産管理- 徹底活用ソリューション」の会場は「広島 RCC文化センター 6F B10 会議室」です。

中止になったときは残念でしたが、どれも興味のある技術なので、こうして振り替え開催が決まってホッとしています。

広島のみなさん、いっしょに参加しませんか。

Paint.NET v3.0 が Beta 3 で日本語に対応したようです

Windows に付属する MS ペイント (mspaint.exe) の置き換えを目的としてワシントン州立大学と Microsoft の共同プロジェクトとして発足した Paint.NET が、新バージョン 3.0 の Beta 3 で日本語に対応したようです。

これまでも有志が提供しておられる日本語化キットを適用することで日本語に対応できましたが、これからは追加の作業無しで日本語の環境が手に入ります。

Paint.NET v3.0 は開発中のバージョンですが、最新の安定バージョンである v2.72 よりも動作速度が速く、また、Beta 2 の頃から既に動作が安定していた (少なくとも私の環境では) こともあり、今回の日本語への対応を併せると、ますますお勧めの画像編集ソフトになりました。

Paint.NET は、MS ペイント では役者不足、PhotoshopFireworks では役不足、という編集作業にフィットします。

フリーのソフトウェアなので、導入のハードルは低いと思います。
画像編集ソフトをお探しの方はチェックしてみては如何でしょうか。

Posted by Ryosuke Uemoto | with no comments