ADODBで接続し、取得したレコードセットをワークシートに貼っています。
(CopyFromRecordsetを利用)
1.貼りつけるセルにユーザー定義書式を設定しているのですが、貼った時にこの書式が適用されない。
例えば、A2にユーザー定義書式で "d"と設定していた場合、
2010/7/13は 13 と表示したいが、2010/7/13と表示されてしまう(この時、書式は日付になっていた)。
2.貼った後、VBAで再度書式を設定すると、意図しない書式になってしまう。
例えば A,B,C列で、すべて数値が入るセルについて、
AおよびB列に .NumberFormat = "0%" で書式を設定したところ、C列にもこれが適用されてしまう。
C列に.NumberFormat = "0" 等を設定しても現象は変わらなかった。
上記2点について、解決策があれば教えてください。
開発環境:Excel2007(ただし2003形式) + SQLServer 2000
CopyFromRecordset はセルを完全に上書きしてしまうようなものだと認識すればいいと思います
設定を残したいのであれば GetRows で1行分を配列に読み込んでセルに書き込み、また次の行を読んでということをEOFになるまでループさせる方法になります
http://msdn.microsoft.com/ja-jp/library/cc364163.aspx
1行分を1回でセルに書き込む際には下記のように配列の向きを縦横入れ替えてやる必要があるので注意です
range(セル範囲).Value = Application.Transpose(配列)
ループが面倒ということでしたら作業用のワークシートにCopyFromRecordsetで書き込んで
目的のシートに「形式を指定して貼り付け」で値だけをコピペするというのでもいいと思います
回答者 | 回答 | 受取 | ベストアンサー | 回答時間 | |
---|---|---|---|---|---|
1 | hathi | 216回 | 153回 | 49回 | 2010-07-16 20:12:07 |
コメント(0件)