TransferSpreadsheetでの指数表記についての解決方法

このQ&Aのポイント
  • VBAのTransferSpreadsheetを利用してExcelを読み込む際、指数表記として認識される問題について解決方法を探しています。
  • 指数表記を含むセルの書式混在により、正しく読み込めない状況です。
  • Excelファイルを訂正することができないため、他の方法で指数表記を回避する方法を知りたいです。
回答を見る
  • ベストアンサー

TransferSpreadsheetでの指数表記

VBAにてTransferSpreadsheetを利用してExcelを読み込み テーブルに表示させているのですが、 以下書式条件だと何故か指数表記として読み込んでしまいます。 Access上では表記だけでなく中身も省略されており、 恐らく指数表記自体を文字列として読み込んでいる様で困っています。 例1 1行目(ヘッダ)文字列 2行目 数値(書式:数値) 3行目 数値(書式:文字列) 結果1 2行目が指数表記として読み込まれます。 例2 1行目(ヘッダ)文字列 2行目 数値(書式:数値) 3行目 数値(書式:数値) 結果2 この場合は指数表記にならないので書式混在ケースのみの様です。 書式混在でも指数表記による取り込みを回避したいのですが、 何か方法はありますでしょうか? 元のExcelファイルを訂正するのは不可になります。

質問者が選んだベストアンサー

  • ベストアンサー
  • kkkkkm
  • ベストアンサー率65% (1615/2454)
回答No.2

フィールドサイズ 倍精度浮動小数点型 書式 固定 小数点以下表示 0 にしてみてはいかがでしょう。 エクセルの最大桁数15桁までは大丈夫そうな感じです。 ただし、エクセルのファイルをエクセルで開いていると最後の方4桁が0で埋められてしまいます。

popepon
質問者

お礼

倍精度浮動小数点型と言う項目名が見当たらなかったのですが、 その名称からしてDoubleかなと思い データ型を "短いテキスト" から "大きい数値" に変更した所、 うまく取り込める様になりました。 ありがとうございました。

その他の回答 (1)

  • chayamati
  • ベストアンサー率41% (254/607)
回答No.1

>VBAにてTransferSpreadsheetを利用してExcelを読み込み ★これでインポートされる種類は〈文字列〉と〈数値〉だけでは  ないでしょうか。 書式は対象外です  インポートするテーブルのテーブルデザインビューで  フィールドの書式を定義します   〈文字列〉〈整数型〉〈短精度浮動小数点型〉〈日付/時刻型〉 >2行目が指数表記として読み込まれます。 ★自分のOffice365Accessには「指数表記」の  書式プロパティーはありません  そちらではどのような書式になっていますか  差しさわりなければ補足願います

popepon
質問者

お礼

ご回答ありがとうございます。 質問の書き方が良くなかった様です。 取り込み元のExcelの書式によってAccessに取り込む値が変わると言う事です。

関連するQ&A

  • TransferSpreadsheetでの数値丸め

    前回の質問と関連がありますのでご参考下さい TransferSpreadsheetでの指数表記 https://okwave.jp/qa/q10095442.html Access上のVBAにてTransferSpreadsheetを利用して Excelを読み込みテーブルに表示させているのですが、 以下書式条件だと何故か数値が丸められ正しくない値が読み込まれます。 例1 1行目(ヘッダ)文字列 2行目 数値(書式:数値) 3行目 数値(書式:文字列) 結果1 2行目の値が丸められてAccessのテーブルに取り込まれます。 例2 1行目(ヘッダ)文字列 2行目 数値(書式:数値) 3行目 数値(書式:数値) 結果2 この場合はどちらも丸められず、正しい数値が取り込まれます。 Excelの書式で文字列と数値が混在した時限定の挙動の様です。 取り込み元のExcelは編集不可になります。 数値を丸められず正しく読み込む方法はありますか?

  • 指数表示しない方法

    アクセスデータをエクセルに変換する時、文字列(1D00051)がはいているセル一部が指数表示になってしまいます。 書式設定でいくら文字列に変更しても変わらないです。 指数表示を元の文字列に戻したいですがなかなかできません。 資料一部を添付しますので 宜しくお願い致します。

  • エクセルでの文字の表記について

    エクセルで、 A列に含まれる文字を、 C列に置き換えて表記したいのですが、 例)白い(ab) 黒い(cd) 赤い(ef) 1行目A列 白いねこ → 1行目C列に ab 2行目A列 赤い風船 → 2行目C列に ef 3行目A列 黒い犬  → 3行目C列に cd と表記したいです。 どのような方法で、どのように関数を使えば良いのでしょうか。 教えて下さい。 よろしくお願いします。

  • Excelで数値→文字列変換で指数表示になったものをいっぺんに直したい

    Excelについての質問です。 他のシートからコピー&ペーストした13桁の数字の羅列データ(JANコードまがいのものです)をまた別のシートの同様のデータと文字列としてマッチングをしようとしています。 ただ、コピペ元のデータが数値と文字列が混在していてコピペ後にセルの書式設定で列を一括で文字列に設定すると「2.01E+12」のように指数表示になってしまうものがありました。 一つずつダブルクリックすれば元の数字に戻るのですが、なにしろ数が多く面倒なものでなんとかいっぺんに指数表示から元の数字に変換することができないものでしょうか。 ちなみにOSはWin2000、Excelも2000を使用しています。 今回はコピペしてしまった後の対処方法をお尋ねしていますが、コピペ時にこうすれば良いというような回避方法もありましたら併せてご回答頂ければ幸いです。

  • 倍数接頭語つきの単位の指数表記変換

     すいません、バカみたいな問題なんですが、正直、?????なので意見をいただきたいです。    問題はある数値を倍数接頭語を用いない指定された単位に直して、指数表記する(例:80.1MHz = 8.01×10の7乗 Hzなど)というものです。ここで、250cℓは何ℓという問題があるんです。すぐに2.5ℓと書こうとしたのですが、これは指数表記でないことに気が付き、でも、これじゃ指数表記しなくてもいいんじゃないか・・・と悩んでいます。こういう時、指数表現ではどう表せばいいのでしょうか。

  • エクセルで数値入力するとシャープ表示になってしまう

    エクセルで作った表の訂正作業をしているのですが、もともと在った数値を書き換えたところ、####と、#表示になってしまいました。 訂正前の欄は、✖200 のように、数値の前に✖が表示されたものです。 ネットで検索して、セルの書式設定から#表示を数値に戻す方法は分かったのですが、200 のように数値だけの表記になってしまいました。 書式設定を、標準や文字列、ユーザー定義など色々選んでみたのですが、何度やっても#表示 あるいは、数値表示だけになってしまいます。 ✖数値という元の表示に戻すにはどうすればよいでしょうか?

  • エクセルの指数を無効にしたい

    エクセルの指数の機能が働かないようにすることはできますでしょうか? CSVファイルで、たとえば中身が以下のようなファイルがあります。 1E1,1E2,1E3 これをエクセル2002で開くと、1.00E+01のように指数で表示されてしまいます。 「データ」→「外部データの取り込み」で、CSVを開くときに文字列を指定すればよいのですが、 これを毎回やるのは面倒です。 指数の機能が働かないようにすることはできないでしょうか? できないようでしたら、 指数として開いてしまったものを、一括で 「1.00E+01」→「1E1」のように戻すことはできないでしょうか? 環境は、WindowsXP、MS-Office2002でs。

  • エクセルで数字を文字列にしても指数表示されてしまいます

    エクセル2000の書式設定で、[表示形式→文字列]、[配置→折り返して全体を表示する]にしているのですが、数字が指数表示されてしまいます。セルの幅を広げるとそのまま表示されるのですが、文字列のまま折り返して表示させることはできないのでしょうか。

  • 英語表記されたハイフォンのみ色替可能?

    エクセル上での英語表記された電話番号(例)+23 222-111-1111 最初の+と、間のハイフォンのみを色替えしたいのですが、どうしても最初のプラスが計算式に変換しようとしてか出来ません。 書式設定で文字列にしても出来ません。 替える方法はないのでしょうか。

  • セルの書式が標準なのに文字列にできるのはなぜ?

    会社のシステムで吐き出したデータですが セルの書式設定が標準なのに文字列となっています。 マクロを利用して、あるセルの値を別セルへ転記すると、 数字は数値に変換され、先頭の0は消え、桁数が多いと指数表示になってしまいます。 会社のシステムが吐き出したエクセルはセルの書式が標準なのに 中の数字が文字列でいられるのが疑問です。 会社のシステムの吐き出したデータは Microsoft Excel 2.1ワークシートで 全てのセルの書式設定は「標準」です。 で例えば 12345678901234 は 12345678901234 と表示されていて 「数値が文字列として保存されています」 となっています。(先頭に ' は入っていません) 0101という値のセルでも 表示は0101ですが 「数値が文字列として保存されています」 となっています。(先頭に ' は入っていません) それらのセルの値をマクロとかで別セルに転記すると 転記先では1.23457E+13 と表示されてしまいます。 (0101は101になります。) まっさらなエクセルに自分で手入力すると ・セルの書式設定が標準だと 12345678901234 ↓ 1.23457E+13になります。 ・セルの書式設定が数値だと 12345678901234 ↓ 12345678901234 ・セルの書式設定が文字列だと 12345678901234 ↓ 12345678901234 (ただし 数値が文字列と保存されています と注釈有) なのに会社のシステムの吐き出しデータは セルの書式設定が標準なのにもかかわらず 12345678901234 ↓ 12345678901234 (ただし 数値が文字列と保存されています と注釈有) となっています。 手入力で書式設定が標準の状態でセルに12345678901234 と表示させるには先頭に ' をつける方法しか知りませんが ' が無いのに表示されています。 でもこの該当セルをマクロで別セル(書式設定:標準)に転記すると 1.23457E+13 となります。 またシステムが吐き出したエクセルの同じシート内に 以下のマクロで転記すると ↓ Sub 転記() 行 = 2 Do If Cells(行, 6).Value = "" Then Exit Do If Cells(行, 6).Value >= 10 Then Cells(行, 7).Value = Range("A2") Else Cells(行, 7).Value = Range("A3") End If 行 = 行 + 1 Loop End Sub ↓ このマクロだと A列~F列が書式設定が標準なのに文字列として表示されているのですが 転記先のG列が書式設定が標準であっても 12345678901234 (数値が文字列と保存されています と注釈有) と同じ状態のまま転記できます。 新しいBOOKのシート2に 会社の吐き出しデータをシートコピーした後、 (セルの書式設定:標準だが文字列で表示されている) そのBOOKに登録されているマクロで シート2のセルからシート1のセル(書式設定:標準)に転記すると 数字は数値に変換され、先頭の0は消え、桁数が多いと指数表示 となってしまいます。 ちょっと混乱しています。 理屈等教えていただければと思います。お願いします。

専門家に質問してみよう