Excel ODBC ドライバでデータが 255 文字に切り捨てられる

文書翻訳 文書翻訳
文書番号: 189897
重要 : この資料には、レジストリの編集方法が記載されています。万一に備えて、編集の前には必ずレジストリをバックアップし、レジストリの復元方法を理解しておいてください。バックアップ、復元、および編集方法の詳細を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
256986 Microsoft Windows レジストリの説明
すべて展開する | すべて折りたたむ

現象

Microsoft Excel 97 ODBC ドライバを使用して外部データを取得するときに、フィールドの文字数が 255 文字を超えている場合、255 文字に切り捨てられることがあります。

原因

データが 255 文字に切り捨てられることがあるのは、切り捨てが発生しているフィールドの先頭の 8 レコードに格納されている文字数が 255 文字以下の場合です。Microsoft Excel ODBC ドライバは、デフォルトではデータの最初の 8 行をスキャンして、各列のデータ型を判定します。

[ODBC Microsoft Excel セットアップ] ダイアログ ボックスで [スキャンする行数] の値を 8 より大きな数値 (ただし 16 未満) に変更することはできますが、この値は Excel では使用されません。Excel ODBC ドライバでは、次のいずれかのレジストリ キーの TypeGuessRows DWORD 値を使用して、データ内のスキャンする行数が決定されます。
  • Excel 97
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\3.5\Engines\Excel
  • Excel 2000 以降のバージョン
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\Excel

解決方法

Excel ODBC ドライバで、テーブルに格納されているデータのデータ型を判定するためにスキャンされる行数を変更するには、TypeGuessRows DWORD 値を変更します。

注 : 次の手順は、元の Excel ファイルが Microsoft Excel ブックのファイル形式で保存されている場合にのみ有効です。ファイルが Microsoft Excel 97 ブックおよび Microsoft Excel 5.0/95 ブックのファイル形式で保存されている場合は、データは必ず 255 文字に切り捨てられます。

警告 : レジストリ エディタまたは別の方法を使用してレジストリを誤って変更すると、深刻な問題が発生することがあります。最悪の場合、オペレーティング システムの再インストールが必要になることがあります。マイクロソフトは、レジストリの変更により発生した問題に関しては、一切責任を負わないものとします。レジストリの変更は、自己の責任において行ってください。

レジストリの編集方法の詳細については、Regedit.exe のヘルプ トピック「キーと値を変える」、または Regedt32.exe のヘルプ トピック「レジストリ情報の追加と削除」と「レジストリを編集する」を参照してください。レジストリを編集する前にレジストリのバックアップを必ず作成してください。Windows NT を実行している場合、システム修復ディスク (ERD) も更新する必要があります。

TypeGuessRows 値の設定を変更するには、次の手順を実行します。
  1. 実行中のプログラムをすべて終了します。
  2. [スタート] メニューの [ファイル名を指定して実行] をクリックし、regedit と入力し、[OK] をクリックします。
  3. レジストリ エディタで、実行している Excel のバージョンに応じて次のキーを展開します。
    • Excel 97
      HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\3.5\Engines\Excel
    • Excel 2000 以降のバージョン
      HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\Excel
  4. [TypeGuessRows] をクリックし、[編集] メニューの [変更] (または [修正]) をクリックします。
  5. [DWORD 値の編集] ダイアログ ボックスで、[ベース] (または [表記]) の [10 進] をクリックします。[値のデータ] に 0 〜 16 の値 (両端の値も指定できます) を入力します。[OK] をクリックしてレジストリ エディタを終了します。
注 : パフォーマンス上の理由から、Excel のテーブルが大きい場合は、TypeGuessRows 値に 0 (ゼロ) を設定しないことを推奨します。この値に 0 を設定すると、Microsoft Excel では、各列のデータ型を判定するために、テーブル内のすべてのレコードがスキャンされます。

状況

マイクロソフトでは、この問題をこの資料の対象製品として記載されているマイクロソフト製品の問題として認識しています。

プロパティ

文書番号: 189897 - 最終更新日: 2011年9月19日 - リビジョン: 3.0
キーワード:?
kbbug kbpending KB189897
Microsoft Knowledge Base の免責: Microsoft Knowledge Baseに含まれている情報は、いかなる保証もない現状ベースで提供されるものです。Microsoft Corporation及びその関連会社は、市場性および特定の目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。さらに、Microsoft Corporation及びその関連会社は、本文書に含まれている情報の使用及び使用結果につき、正確性、真実性等、いかなる表明・保証も行ないません。Microsoft Corporation、その関連会社及びこれらの権限ある代理人による口頭または書面による一切の情報提供またはアドバイスは、保証を意味するものではなく、かつ上記免責条項の範囲を狭めるものではありません。Microsoft Corporation、その関連会社 及びこれらの者の供給者は、直接的、間接的、偶発的、結果的損害、逸失利益、懲罰的損害、または特別損害を含む全ての損害に対して、状況のいかんを問わず一切責任を負いません。(Microsoft Corporation、その関連会社 またはこれらの者の供給者がかかる損害の発生可能性を了知している場合を含みます。) 結果的損害または偶発的損害に対する責任の免除または制限を認めていない地域においては、上記制限が適用されない場合があります。なお、本文書においては、文書の体裁上の都合により製品名の表記において商標登録表示、その他の商標表示を省略している場合がありますので、予めご了解ください。

フィードバック

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com