|
▼hana さん:
こんばんは。
http://www.vbalab.net/vbaqa/c-board.cgi?cmd=one;no=9123;id=excel
からの流れですね?
ExcelブックをADOで接続してのI/Oは
色々と制限があるみたいです。
ADOXを使用してエクスポートブック(私の例でいうExportBK.xls)まで
作成するようなコードを書かないと数字を数字として登録する事は難しそうです
(少なくとも私が調べた限りでは)。
しかも、このエクスポートブックをADOで全て操作するようなコードを書かなければ
なりません(Excelで保存したりすると数値として保存されませんでした)。
但し、以下のような現象も確認しました。
仮にA列を数値、B列〜V列までは、文字列というエクスポートブック(ExportBK.xls)を考えてみます。
リンクで示したコードを用いて、アクティブシートの
セルA2が「1」、セルB2列〜V2列にそれぞれ「B」、「C」、・・・「V」が
入力されていて、これをExportBK.xlsにエクスポートしたとします。
ExportBK.xlsには、上記のデータが追加されると思いますが、
この時A列の「1」が問題になりますよね。
文字列の"1"として、登録されています。
これは、書式を触っただけでは、変更されませんでした。
このA列の"1"だけ、
>Sub tesut()
Dim a As Long
a = Range("AXX")
Range("AXX").FormulaR1C1 = a
>End Sub
等として、数字の1にしてブックExportBK.xlsを保存してみて下さい。
この状態で再度、エクスポートを行ってみて下さい。
今度は、A列が数字として登録されているはずです。
結果として、
直前の行の属性に追加される行が依存しているようなのですが・・・。
後は、既存データの数値化は、エクスポートブック(ExportBK.xls)に対して、
'=====================================================
Sub test()
Set rng = Cells.SpecialCells(xlCellTypeConstants)
rng.Value = rng.Value
End Sub
を実行してみて下さい。
数字として、再登録されると思います。
>アクセスからのOutPutで、数値が文字列となってしまっています。
↑については、数字が文字になってしまう現象が確認できませんでしたが、
修正は、上記のコードで可能だと思います。
|
|