人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

ExcelのVBAでアプリケーションを作っています。

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

●質問者: ぎるどんちょ。
●カテゴリ:コンピュータ
✍キーワード:Excel SQLServer VBA アプリケーション セル
○ 状態 :終了
└ 回答数 : 1/2件

▽最新の回答へ

1 ● うぃんど
●60ポイント

CopyFromRecordset はセルを完全に上書きしてしまうようなものだと認識すればいいと思います


設定を残したいのであれば GetRows で1行分を配列に読み込んでセルに書き込み、また次の行を読んでということをEOFになるまでループさせる方法になります

http://msdn.microsoft.com/ja-jp/library/cc364163.aspx

1行分を1回でセルに書き込む際には下記のように配列の向きを縦横入れ替えてやる必要があるので注意です

range(セル範囲).Value = Application.Transpose(配列)

ループが面倒ということでしたら作業用のワークシートにCopyFromRecordsetで書き込んで

目的のシートに「形式を指定して貼り付け」で値だけをコピペするというのでもいいと思います

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ