• 締切済み

エクセルの表示形式を保ったまま、セルに値を代入するには?

現在、既存のエクセルファイルから、 新規エクセルファイルにデータを移すプログラムを作成しています。 CreateObjectを使ってエクセルを開いた後、 xlbook(1).Sheets("sheet1").Cells(1, 1).Value = xlbook(2).Sheets("sheet1").Cells(1, 1).Value Set xlbook(1) = Nothing Set xlbook(2) = Nothing 以上の構文でxlbook(2)からxlbook(1)に値は代入出来るのですが、 この際にエクセルの書式が皆「標準」になってしまい困っています。 xlbook(2)には、表示形式が「文字列」や「ユーザー定義」に設定されたセルが沢山あり、 そのままの表示形式で移すプログラムを作成したいのですが、良くわかりません。 確か、Valueを何かに書き換えたような記憶があるのですが・・・。 皆さんのご教授、宜しくお願い致します。

みんなの回答

  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.1

表示形式だけなら xlbook(1).Sheets("sheet1").Cells(1, 1).Value = xlbook(2).Sheets("sheet1").Cells(1, 1).Value xlbook(1).Sheets("sheet1").Cells(1, 1).NumberFormat = xlbook(2).Sheets("sheet1").Cells(1, 1).NumberFormat とか、、、 全部ならコピーしちゃうのも。 xlbook(2).Sheets("sheet1").Cells(1, 1).Copy Destination:= _ xlbook(1).Sheets("sheet1").Cells(1, 1) VBAしか知らないのでVBで動くか解りませんけど。

pal_0424
質問者

お礼

試してみたところ、NumberFormatは稼動しました。 ありがとうございました!

関連するQ&A