- 締切済み
日付の書式設定が変わってしまうことについて
日付の書式設定が変わってしまうことについて エクセル2000でつくったマクロ(下記)をエクセルXPで使用すると、2010/3/25が 25/3/2010とコピーされてしまいます。 セルの書式をアスタリスクなしに設定しなおしても、マクロを実行するとアスタリスクありの書式でコピーされます。 エクセル2000で実行すると、書式が変わることなくコピーできます。 ヘルプを探しましたが、対策を見つけることができませんでした。 ご存知の方ございましたらご教授願います。 OSはXP HE SP3、国設定は日本です。 【マクロ】 Private Sub CommandButton1_Click() Dim i As Long Dim Sh1 As Worksheet Dim Sh2 As Worksheet Set Sh1 = ActiveWorkbook.Worksheets("P") Set Sh2 = ActiveWorkbook.Worksheets("D") Application.ScreenUpdating = False Sh1.Range("A35:X36").Value = Sh1.Range("A32:X33").Value ・・・この段階ではSh1.Range("B35")に2010/3/25とコピーされる・・・ Sh2.Unprotect i = Sh2.Range("A25000").End(xlUp).Offset(1).Row Sh2.Cells(i, 1).Resize(2, 8).Value = Sh1.Cells(35, 1).Resize(2, 8).Value・・・この段階でSh2に25/3/2010とコピーされる・・・ Sh2.Select Sh2.Range("A2:H25000").Select Selection.Sort Key1:=Sh2.Range("C2"), Order1:=xlAscending, Header:=xlNo, _ OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, SortMethod _ :=xlPinYin Sh2.Protect Set Sh1 = Nothing Set Sh2 = Nothing Application.ScreenUpdating = True End Sub
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- hige_082
- ベストアンサー率50% (379/747)
valueは値のみを参照するプロパティですよ 書式が必要ならcopyを使用するのが一般的です >Sh2.Cells(i, 1).Resize(2, 8).Value = Sh1.Cells(35, 1).Resize(2, 8).Value・・・この段階でSh2に25/3/2010とコピーされる・・・ Sh1.Cells(35, 1).Resize(2, 8).copy Sh2.Cells(i, 1) に変更してはと思います
- chuchuo
- ベストアンサー率45% (99/217)
一例です A列に日付のデータが混在しているということだとして 最後に日付データだけ好みの様式に変更してみてはいかがでしょう? IsDate関数で判定して 日付データのみ FormatDateTime関数で表示形式を設定
お礼
ご回答ありがとうございます。 書式ごとコピーさせるように書き換えたところ、書式が変更されなくなりました。 確かなことはわかりませんが、2002はシート間のValue転記に問題があるようですね