開発中の業務用アプリで、Excelブックからデータを取り込みたいのだが、JET OLE DB プロバイダーを使って読み込むと、取りこぼしが発生することが判明。
マイクロソフトの技術資料によると、「従来のデータベースとは異なり、Excel テーブルの列に直接データ型を指定する方法はありません。OLE DB プロバイダが列内の 8 行をスキャンして、そのフィールドのデータ型を推測します。」とある。
例えば、ある列でデータの先頭から8行目までは空白セルが続き、その後に数値が入っているセルが出現すると(例えば9行目)、その数値が無視されてしまう。つまり、空白セルと同じ扱いになってしまう。
試行錯誤した結果、書式に数値を指定しておけば、推測の結果が数値となり、そのデータは正しく取り込まれることが分かった。
推測に使用する行数は拡張プロパティのMAXSCANROWSを指定する事により、最大で16行まで指定できるが、1~16行目迄は空白で、17行目に1が入っていると17行目は空白になってしまう。
一番の解決策は、Excelテーブルの列に直接データ型を指定出来る事なのに、マイクロソフトは何故そう出来るようにしてくれないのだろう。
結局、VBA(Visual Basic for Applications)でマクロを作って、それをVB.NET側から起動する事にしたのだが、そのVBAマクロがアドインだと、VB.NET側から起動する事が出来ない。回避策はマイクロソフトが公開しているが、それについての動作は保証していない。これで業務ソフトを作らなければならないなんて。。。
まったく、何でこんな不便な仕組みを作っているんだろう、マイクロソフトは。
当部がコンピューターについて経験した中で有益と思われる情報を発信しています。誰か一人にでも有益と思ってもらえれば幸いです。かなりマニアックな情報もありますが by 間中 猛(MANAKA Takeshi)
関東農機株式会社のホームページ
2011年5月14日土曜日
2011年4月12日火曜日
MS Removal Tool(詐欺プログラム)に注意!!
うちの会社の1台のPCがMS Removal Toolに感染した。ウイルスバスター・ビジネス・セキュリティ、利用ユーザーの権限はPowerUser、Windows Software Update Serviceで更新と対策はしっかりとしていたのにだ。
現象は、MS Removal Toolのウインドウが表示され続けて仕事にならないそうだ。消しても消してもこの画面が表示され続ける。
ネットで情報を収集してみたら詐欺プログラムであることが分かり少し安心した。OSがXPだったのでシステムの復元で感染前の状態に復元したらMS Removal Toolは消えた。
感染経路は不明。感染したPCをその日使用していた2人から事情を訊いたが、二人ともいつもと違う画面が出たり、変な画面が出た事は記憶に無いとのこと。二人が閲覧したのはYAHOOのホームページとWiKipedia、Q&Aのホームページだそうだ。
Internet Explorerの履歴を頼りに同じ行動をしてみたが再現しない(普通の人は再現確認をしないように)。どこから感染したのだろう。
今日になって感染したPCの使用者からウイルスバスター・ビジネス・セキュリティが動いていないと報告が有り、該当PCを調査したら、確かに動いていない。恐らく、MS Removal Toolがセキュリティソフトをアンインストールしたのだと思い、再度インストールしたら正常に動作した。
何ともやっかいな詐欺プログラムだった。
現象は、MS Removal Toolのウインドウが表示され続けて仕事にならないそうだ。消しても消してもこの画面が表示され続ける。
ネットで情報を収集してみたら詐欺プログラムであることが分かり少し安心した。OSがXPだったのでシステムの復元で感染前の状態に復元したらMS Removal Toolは消えた。
感染経路は不明。感染したPCをその日使用していた2人から事情を訊いたが、二人ともいつもと違う画面が出たり、変な画面が出た事は記憶に無いとのこと。二人が閲覧したのはYAHOOのホームページとWiKipedia、Q&Aのホームページだそうだ。
Internet Explorerの履歴を頼りに同じ行動をしてみたが再現しない(普通の人は再現確認をしないように)。どこから感染したのだろう。
今日になって感染したPCの使用者からウイルスバスター・ビジネス・セキュリティが動いていないと報告が有り、該当PCを調査したら、確かに動いていない。恐らく、MS Removal Toolがセキュリティソフトをアンインストールしたのだと思い、再度インストールしたら正常に動作した。
何ともやっかいな詐欺プログラムだった。
2011年3月29日火曜日
全社電話網再構築
昨日、KDDIの営業課長が来社し、我が社の電話網の事を褒めてくれた。
彼の話では、これだけ大規模な電話システム構築は栃木県内では我が社が初めてとのこと。ホンダや日産でもここまではやっていないと言われた。その為、大変貴重な経験をする事が出来て感謝していますと言われてしまった。今後は、我が社での経験を他社への提案時に生かしていきたいと言っていた。
確かに、電話システムの立ち上げなんて簡単だと思っていたら、意外や意外、決めることが多く、チェックの量も半端ではなかった。稼働後も問題点が50以上発生し、それをKDDI、日本通信工販と相談しながら妥協できる部分は妥協しながら、但し、譲れない部分は何とかしてとお願いして、ほぼ当初考えていた通りのシステムに近いものが完成した。いくつか要となる部分で業者からは出来ないと言われたけど、やってくれなきゃ困ると言ってお願いしたら、結局具現化出来たものな。業者は大変だったと思うよ。
今回の目的の一つ、電話の利便性は確実に向上したと思う。もう一つの目的の通信費の削減。これは、4月分の請求書を見てから判断したい。でも、まだ途中経過を見ただけだけど、通信費は確実にそして大幅に減少していた。
彼の話では、これだけ大規模な電話システム構築は栃木県内では我が社が初めてとのこと。ホンダや日産でもここまではやっていないと言われた。その為、大変貴重な経験をする事が出来て感謝していますと言われてしまった。今後は、我が社での経験を他社への提案時に生かしていきたいと言っていた。
確かに、電話システムの立ち上げなんて簡単だと思っていたら、意外や意外、決めることが多く、チェックの量も半端ではなかった。稼働後も問題点が50以上発生し、それをKDDI、日本通信工販と相談しながら妥協できる部分は妥協しながら、但し、譲れない部分は何とかしてとお願いして、ほぼ当初考えていた通りのシステムに近いものが完成した。いくつか要となる部分で業者からは出来ないと言われたけど、やってくれなきゃ困ると言ってお願いしたら、結局具現化出来たものな。業者は大変だったと思うよ。
今回の目的の一つ、電話の利便性は確実に向上したと思う。もう一つの目的の通信費の削減。これは、4月分の請求書を見てから判断したい。でも、まだ途中経過を見ただけだけど、通信費は確実にそして大幅に減少していた。
2011年3月21日月曜日
Adobe Reader Xのインストール時の注意
PDF閲覧ソフトの代名詞、ADOBE READERですが、バージョンXをインストールすると全く関係ないMcAfee Security Scan Plusがインストールされてしまいます。何でこんなことをするのか理解に苦しみます。
セキュリティーソフトをインストールしていないPCならば必要でしょうが、きちんとセキュリティ対策を実施しているPCにはMcAfee Security Scan Plusなんて百害あって一利なしです。
私は即時、アンインストールしました。
困ったものです。
セキュリティーソフトをインストールしていないPCならば必要でしょうが、きちんとセキュリティ対策を実施しているPCにはMcAfee Security Scan Plusなんて百害あって一利なしです。
私は即時、アンインストールしました。
困ったものです。
2011年3月12日土曜日
コンピューターは無事でした
昨日(3/11)の震度5強の地震で、会社のコンピューターは半壊状態かと思いながら出社し、7台のサーバーと29台のパソコンの調査しましたが、全部無事でした。あれだけ揺れたのに故障が一台も無いとは驚愕です。最近のハードディスクの性能は素晴らしいと思いました。現場やその他の部署に残っている20台位のパソコンは来週の月曜日に調査しますが、この分では故障は無さそうで一安心です。ただ、福島県と岩手県のコンピューターがどうなっているかが心配です。
2011年2月25日金曜日
開発者から見たiPhone端末とAndroid端末
結論から言えば、私はAndroid端末に軍配を上げるな。
普段から自分自身がiPod thuchを使っていてそれなりに満足はしているけど。でも、それは一ユーザーとしての立場だから。
開発者側となると話は別。
圧倒的にAndroid端末の方が良い。
何故って、アプリケーション・プログラムの開発環境が一般的だから。
iPhoneのアプリケーション・プログラムを開発するにはマックを買わなければならない。と言うことは、OSの動きから操作方法まであらゆることを一から勉強しなければならない。とてもそんなことやってられない。何しろ、我が社では開発者は私一人だから。
それに対して、Android端末は、アプリケーション・プログラムの開発環境は私のPCの中にも入っている。つまり、Windows系OSで可能だ。また、Mac OSやLinuxでも開発が可能。開発ツールは私も使い慣れているEclipse。開発言語はJAVA。我が社の作業票・移動票・注文書・納品三票などは全てこのJAVAで開発されている。
いずれは、我が社でもAndroid端末を営業や製造現場が使用するような時代が来ると思う。
普段から自分自身がiPod thuchを使っていてそれなりに満足はしているけど。でも、それは一ユーザーとしての立場だから。
開発者側となると話は別。
圧倒的にAndroid端末の方が良い。
何故って、アプリケーション・プログラムの開発環境が一般的だから。
iPhoneのアプリケーション・プログラムを開発するにはマックを買わなければならない。と言うことは、OSの動きから操作方法まであらゆることを一から勉強しなければならない。とてもそんなことやってられない。何しろ、我が社では開発者は私一人だから。
それに対して、Android端末は、アプリケーション・プログラムの開発環境は私のPCの中にも入っている。つまり、Windows系OSで可能だ。また、Mac OSやLinuxでも開発が可能。開発ツールは私も使い慣れているEclipse。開発言語はJAVA。我が社の作業票・移動票・注文書・納品三票などは全てこのJAVAで開発されている。
いずれは、我が社でもAndroid端末を営業や製造現場が使用するような時代が来ると思う。
2011年2月11日金曜日
EXCELのブックに定義してある名前を一括削除
ブックに定義してある名前を一括で削除する方法です。
塚原君が手作業で名前を数十個削除していて大変そうなのでネットでプログラムをみつけて手を加えたものです。
ネットで見つけたプログラムは、全部の名前が正しく定義されていれば問題なく動作するのですが、名前にセルの名前と同じ名前が定義されているとエラーが発生してしまい、プログラムが中断してしまいました。そこで、ON ERRORを追加して、回避するように追加しました。
Sub ClearAllNames()
On Error Resume Next 'この命令を追加し、エラーが発生したら次の命令を実行するようにした
Dim objName As Name
For Each objName In ActiveWorkbook.Names
objName.Delete
Next objName
End Sub
このプログラムの基本的な使い方はネットにありますので、私はここまでにしておきます。
例えば、こちら
http://questionbox.jp.msn.com/qa3028652.html
塚原君が手作業で名前を数十個削除していて大変そうなのでネットでプログラムをみつけて手を加えたものです。
ネットで見つけたプログラムは、全部の名前が正しく定義されていれば問題なく動作するのですが、名前にセルの名前と同じ名前が定義されているとエラーが発生してしまい、プログラムが中断してしまいました。そこで、ON ERRORを追加して、回避するように追加しました。
Sub ClearAllNames()
On Error Resume Next 'この命令を追加し、エラーが発生したら次の命令を実行するようにした
Dim objName As Name
For Each objName In ActiveWorkbook.Names
objName.Delete
Next objName
End Sub
このプログラムの基本的な使い方はネットにありますので、私はここまでにしておきます。
例えば、こちら
http://questionbox.jp.msn.com/qa3028652.html
登録:
投稿 (Atom)
