正直に書くブログ

2012年9月からフリーランス活動開始しました。
今後もマニアックでも有用な情報を提供出来るように頑張ります。

EXCEL

Office 2003でファイルを開くとメチャ待たされる件

職場でExcelをガシガシと凄いスピードで使いまくる女性スタッフが居るのですが、今日、「ファイルサーバにあるExcelファイルを開けますか?」って尋ねられて、試してみたら私のPCでは問題ありませんでした。

彼女のPCで当該Excelファイルをダブルクリックで開くと、Excelがフリーズしたかの様にだんまりになってしまい数分経ってようやくファイルが開けるという、どこかで見た症状でした。

そや!これでしばらく俺も悩まされたやんか!

確かFix Itで修復した(レジストリ変更)と記憶。Windows UpdateでOfficeの仕様が変更になり、ネットワークリソース上のファイルを開く際、ウィルスチェックだかのファイル診断が走るのでフリーズした様になるという内容だったと。Office 2003と、Windows 7 Proで私はこれに数週間悩まされたのですが、回避方法を見つけた時の喜びが大きかったのでジワジワと思いだしてきました。

MSの機械翻訳の質が低いのでアレですが、なんとなく意味は分かると思います。私は英語は苦手ですが、技術系の文章なら下手な翻訳より原文(英語)を読んだ方がよく理解出来ます(w

Office プログラムが遅いか、ネットワーク上の場所からファイルを開くときに (ハング) が応答を停止します。

ある意味最悪ですねー。
コレに似たトラブルもありました。原因は全く違いますが症状が似ているので参考までに。

正直に書くブログ : MS Officeでファイル保存時にフリーズしてしまう現象

Microsoft Accessの仕様が甘い(インポート)

マイクロソフトのExcelを始め、Accessもちょっとしたビジネス用途では活躍してくれるのですが、どうもお節介というか勝手にデータを変換したりと、仕様が甘い(ユーザーの事を考えず開発者側の押しつけ)と感じます。

私は今JANコードを管理しているのですが、どんどん増えていくデータ量の関係でExcelではもはや無理となりAccessを使用しているのですが、Accessもお節介な仕様で困ってしまいます。

例えばExcel側で整形してデータの型をオールテキストにしてから、Accessのテーブル(テキストで定義済み)にインポートしようとすると、あるフィールド(列)の先頭のデータが数値の場合、そのフィールドを勝手に数値で取り込もうとしてしまいます。そして途中で数値以外のデータが出てくるとデータの型変換に失敗しました・・・

もうホントやめてくれって感じ

回避方法は、一番最初のレコードにテキスト型のデータを持ってくれば、一番最初の行を読み込んだ時点でテキスト型だなと認識するのでこのお節介な仕様をごまかすことが出来ます。

めんどくせぇ・・

ほんとめんどくさいです。

Microsoft社の製品は、どうもこういうユーザー視点ではなくプログラムを作っている側の都合を押しつけてくるのがウザいですね。

余談ながらExcelがJANデータを数値と認識して省略コードにしたり、先頭の0を無くしたりするのもウザいです。テキストと明示的にセル指定してるんだから、ExcelもAccessもテキストでやりとりすりゃいいじゃん。何の為のOffice(統合)製品なんだ?

ま、悪い会社じゃないのでなんとかして欲しいと期待はしているのですが、なかなかユーザーの声が開発者に届かないんですよね残念ながら。でかくなりすぎた組織ってこういうものなのかなぁ。

MIFES 9がCSVデータ編集の最強ツールになるかも!

MIFES 9ベータ版が公開されているので試してみた。理由はずばり、強化されたCSVモードの実装セル(列)内で改行されていても読み込める様になったそうだ

CSV形式のファイルを編集する際、Excelで回りくどい開き方と保存の手間を強いられ、うっかりするとデータが化け(型を変換される)てしまうという煩わしさに苦悩してきた。

比較的データ量の少ないCSV形式の処理にはCSVエディタが適しているが、データ量が多くなるとべらぼう遅くなるので、ネットショップの商品データCSVの処理には向かない。特にアパレル系は、一つの品番に色とサイズが存在するので、データ数はどんどん増える。

同様にJANデータの管理も、もはやExcelでは追いつかず、Accessに取り込んで行うことになっていた。当然ながら入出力の繰り返しで、型の変換を勝手にやられてしまうとうっとうしい事この上ない。

そこで私はテキストエディタ(EmEditor)を使用している。慣れてくると表になっていなくても編集できてしまうし、何よりも膨大なデータでもサクサクと処理できるので快適に思っていた。しかしその上を行くのがawk言語によるスクリプト処理で、簡単な手順をスクリプトに記したり、一行コマンドで処理してもあっという間に結果がファイルに出力されるので、もはや最強だろうと思っていた。(もちろんPerlやRubyなどのより強力な言語を扱えればそれにこしたことは無いが、私はプログラマーじゃないのでawkを扱うので限界だ)

しかしawkには致命的な弱点がある。1行=1レコードというルールが崩れると正しくレコードを認識できない。今時のCSV書式の常識では"ダブルクォーテーション"でフィールドを囲む事によって、途中で改行されていてもそれは文章中の改行だと判断させることになっているが、awkのパーサはそれを標準では理解してくれない。

そんなところへひょっこり現れたのが、CSVモードを洗練させたMIFES 9である。

テキストエディタという地味なツール故、知らない人も多いだろうが、MS-DOSな時代から販売されている強力なテキストエディタで、私が初めてPC(パーソナルなコンピュータという本来の意味で)を扱う様になった職場では、Dynabook J-3100にMIFESスクリーンエディタがインストールされていた。MS-DOSに標準実装のエディタ、EDLINコマンド(一行ずつ表示して編集)なんか使ってられないと痛感した。

あれから15年位は経っているだろうか?いまだにMIFESが生き残っている事に驚いた。想像するにプログラマー、ライター(もの書き)等の根強い支持を受け続けてきたのだろう。それだけ完成度の高い、洗練されたツールであると評価しても良いだろう。(MIFES 8でアクティベーションが採用され、ライセンスが厳しくなった事より、コアなユーザーにそっぽ向かれたという情報を見て、MIFES終わったなと思ったのをなんとなく記憶している)

そんなMIFESが9というバージョン番号を掲げて再び市場に現れた。アクティベーションは廃止、個人ユーザーなら1ライセンスで2台のPCまでインストール可能。USB版を作成する機能も付いているとか。

そして目玉は、進化したCSVモードである。これは圧巻であった。大容量データを開いた時のCSVエディタのどんくさい動きを、存在が無意味だと思わされる位に快適だ。なにしろテキストエディタなんだから動作が軽い。

某、ドロップシッピングの商品データCSVを落としてきて、MIFES 9のベータ版で開いてみた。流石に20万レコード以上、ファイルサイズにして250MBのCSVデータを開くと数秒はかかるが、開いてしまえば編集は快適である。やはりテキストエディタだけのことはある。

CSVモードに切り替える時は、セパレータ(カンマ)、囲み(ダブルコーテーション)等の指定をする。数秒でセパレータで区切られた表形式に整形される。今時のCSVの書式を正確にパースしてくれる。これならテキストエディタでも見やすくCSVデータを表に整形した上で編集できるだろう。ExcelでCSVファイルを開く際の型指定が無いだけでも手間とは感じない。

しかし、一行目(列見出し)を固定する方法が見当たらない。今回の試用では20万レコードを編集する。ならば列見出しの常時表示は必須である。特に状態フラグ等を表す列で、0か1の値しか持ってない場合は、どの列がどの項目なのか分からないと編集が出来ない。せっかく表形式に整形してもらってもあんまり意味がなくなる。CSVデータの編集ならではのニーズだろうがその配慮は欲しい。

まだベータ版なので、フィードバックで要望を2つあげた。実装されるかどうかは分からないが、CSV編集をする上で欠かせない基本機能なので期待をしている。

おそらく私はMIFES 9を購入するであろう。それは作業の効率アップが確実に期待できるからだ。職場で購入してくれるかどうかは分からないが、個人的に購入してででも使用するつもりだ。なにしろ扱うファイル形式が基本的にTXT形式なのだから、Offceアプリの様に互換性うんぬんをい気にする必要が無い。私はプログラマーでは無いが、SubversionやVSSとの連携によるバージョン管理機能も魅力的だ。

最後のブラッシュアップを開発元が決めてくれたら、ネットショップ業界でも欠かせないツールになりかねないパフォーマンスを秘めているだけに、かなり期待している。

本当はあんまり教えたくない情報でもあるが、MIFESの開発が中止してしまうとこれも問題なので、良いものには売れてもらわないと困るから紹介する事にした次第である。

日々、膨大なCSVデータを扱う人は是非、ベータ版(致命的なエラーにはまだ遭遇していない)の検証を行い、フィードバックを送って完成品の購入を検討していただきたい。

良いものが必ずしも生き残る時代ではないだけに、良いものはユーザーが口コミででも広げていかないといかないと思っている。最後は自分に帰ってくることだから。なんとなくでも興味をもってくれた方は、概要が読み取れる元麻布氏のレビュー記事を読んでみて欲しい。


Excelで文字列の中から数字のみ取り出す(ユーザー関数)

久しぶりの投稿ですが今日はExcelの話題。前職で管理業務を任されていた時はExcelとAccessは欠かせないツールでしたが、今はCSVファイルの整形程度でほとんど凝った使い方はしません。しかし商品管理では何かしら出てくる要件があるのです。今日は在庫管理を担当しているスタッフから相談がありました。

ご存じかどうかは分かりませんが、スポーツ用品メーカーが作るウェアなどのアパレル製品には、「サイズ」の他に「色」というラインナップがあります。大抵のメーカーは独自に色名に番号を付けて管理しています。

テニス用品ではYONEXが品番管理がやりやすいので(FILA-レナウンはなんと年度で色番号が変更になる!!)例として出してみます。YONEXの代表的な色とコードは下記のようになります。

  • ブラック(007)
  • ホワイト(011)
  • クリアーレッド(459)
  • ネイビーブルー(019)
  • チャコール(075)
とまぁこんな感じです。

クリアーレッドはいいですねー(459)ですからそのまま数値です。しかし、それ以外はなんと頭に0が付いてます。これがExcelでの処理で泣かせどころなのです。Excelは中途半端に賢いので数字を数値として認識していまいます。

スタッフからうけた相談は、この色名(コード番号)の中からコード番号のみ取り出す関数はどうやったらよいか?とのことでした。私の知る限り会社で使っているExcel2003にはそんな便利な関数は無いハズです。

ユーザー関数作るしか無いじゃん・・たぶん

続きを読む

MS Officeでファイル保存時にフリーズしてしまう現象

職場のスタッフから、ExcelやWordで文書を作成して保存場所をマイドキュメント(デフォルト)以外にしようとすると、必ず無応答になってPCが固まってしまうという申告を受けました。

OS(Windows XP)が原因っぽいと思ったので、簡単な切り分け方法として、メモ帳(wordpad)などでも試してみましたがこちらは問題ありません。

対処方法として試してみたのは

  1. MS-OFFICEの修復インストール
  2. MS-OFFICEの再インストール

これでもダメだとのことでした。

Windowsに起因していることはほぼ間違いないと思うので、面倒だけどOS再インストールからやるしかないかなって回答したのですが、ふと思い当たるフシを思い出しました。

実はオフィス移転に際して、置いてきたサーバーが有るのです。他部署で使っていたサーバーに一時期ファイル共有スペースとして間借りしていた領域があったのですが、そこをドライブマップしているんじゃないかなと。(このPCはちょっと特殊な用途に使用されていたのを思い出した)

ビンゴでした。

Zドライブにもはや存在しないサーバー共有リソースへのマップがなされていました。どうやらMS-OFFICE系のアプリは保存の際にマイドキュメントから外に出ると、全てのドライブをサーチするみたいです。

ハッキリ言ってウザい仕様ですね・・

という訳で無用となったドライブマップを削除して復旧です。分かってしまえば簡単な事が原因でしたが脆いOSだなと言うことも再認識した次第です。

改めて検索してみたら既出の事例の様です。2007でも解決させてないとはハッキリ言ってダサいな・・

Office 2002 プログラム、Office 2003 プログラムおよび Office 2007 プログラムでファイルを開くとき、または保存するときにプログラムの応答が停止する

ドメインコントローラが無い為に一元管理でのログオンスクリプトは走らせていないのですが、こういうケースを想定すると、BATファイルで毎回ログオン時にドライブマップをやり直させる一手間は必要なのかなと思いました。しかしそれも管理面からすると30台以上もあるPC一台ずつはやってられないなぁ・・

似たような症状の不具合が時々社内で起きるのでエントリーしときました。参考になれば幸いです。

正直に書くブログ : Office 2003でファイルを開くとメチャ待たされる件

記事検索
月別アーカイブ
SEO的な実験
RSS

ブログランキング

track feed 正直に書くブログ
最新コメント
スポンサードリンク
QRコード
QRコード
  • ライブドアブログ