Excelには隠れた?機能として、セルに漢字を入力すると、そのふりがなを持ちます。例えば「山田」なら「やまだ」と入れて変換するのでふりがなを「やまだ」と覚えますが、「月山」は山の名で「がっさん」ですが、「つき」「やま」でそれぞれ変換して入れるとふりがなを「つきやま」として覚えます。


これがとんでもない悲劇を生み出すことがあります。


よくあるのが名簿の整理です。Excelのシートでソートをすると、標準は「ふりがな」なのです。よって、「月山」を「つきやま」と「がっさん」で入力されていた場合、ソート順が狂うという事象が起こるのです。


【対処法】


1.並べ替えダイアログを出します。

 ここで[オプション]ボタンを押します。



2.並べ替えオプションダイアログが出ます。


この中の

・ふりがなを使う

・ふりがなを使わない


で調整します。デフォルトは前者です。私の経験上は、通常は後者を使いたいところです。


なお、VBAでは、Sortメソッドのパラメータの SortMethod プロパティに設定する値を変えて区別します。


・ふりがなを使う: SortMethod:=xlPinYin

・ふりがなを使わない: SortMethod:=xlStroke





変数の定義はひとつづつ行おう。


具体的には

Dim lRecCnt, lCnt As Long


とするのではなく


Dim lRecCnt As Long

Dim lCnt As Long


とするべきである。


前者では lRecCnt は Long ではなく、Variant になってしまう。

社内の管理用にAccessのデータを単票のExcel形式にして保存するシステムが上手くうごかないとサポートをしたことがある。


帳票を作り終わった後、Accessを終了させていればその帳票は開くのだが、Accessが終了していないと「マクロxxxがありません」(xxxは忘れました)というメッセージボックスが出て開かないとのこと。

まずはじめにピンときたのが「Access内でExcelのセッションを終了させていない」ということで、対処すれば動くようになった。

しかし、ユーザーのPCでは事象が変わっていない。


他の人にも協力を要請し、確認したがそのPCのみ。


こういう場合はだいたい「そのPCに何かが足りない」ことが多い。Excelのバージョンを確認すると、どれもExcel2003だが、不具合のあるものにはサービスパックは全く導入されていなかった。他のは1か2を導入済み。


SP2を適応したところ、難なく動くようになった。



今はサービスパックは無償だが、確かOffice97のサービスパック1は有償、2は無償であったが、2を導入するにあたり1が必須、ということがあった。「自分たちのバグ修正なのにユーザーに費用負担させている」と非難の声もあったが、致し方ない指摘だろう。その甲斐あってか、今は無料である。


しかし先日、当初予定した機能が元の製品にはないためサービスパックでリリースするということを目にする機会があった。SQL Server 2005 である。ソフトウェアの配布方法としてサービスパックが確立しており、ユーザー負担を最小限に抑えるための配慮とも考えられるので実質上はいいと思うが、「サービスパック」の域を超え「機能補完」であるので、「リリース時に間に合わなかった機能の追加」と、名称を分けても良かったのでは?という疑問はある。



結論。ExcelやAccessはバージョン以外にサービスパックの確認もしておくべきである。