質問編集履歴

1

同じような現象のパターン追記

2025/03/21 13:52

投稿

xail2222
xail2222

スコア1511

test CHANGED
File without changes
test CHANGED
@@ -104,3 +104,54 @@
104
104
  また、実際にはSQLSERVERへ接続して結果のRecordSetをシートに貼り付けるという内容です。
105
105
  問題となる事象が再現しているので、提示のコードでの質問となっています。
106
106
 
107
+ --追記--
108
+ 解決しましたが、以下のような場合でも1シート目を日付型にしてしまうことがわかったので
109
+ 蛇足ですが追記しておきます。
110
+
111
+
112
+ ```VBA
113
+ Sub testcode()
114
+
115
+ Dim tSheet As Worksheet
116
+ Dim tRs As Object
117
+
118
+ Set tRs = CreateObject("ADODB.Recordset")
119
+ tRs.Fields.Append "aa", 5 '5:adDouble
120
+ tRs.Open
121
+ tRs.AddNew
122
+ tRs.Fields("aa").Value = 1.11
123
+ tRs.Update
124
+ tRs.AddNew
125
+ tRs.Fields("aa").Value = 2.25
126
+ tRs.Update
127
+ tRs.AddNew
128
+ tRs.Fields("aa").Value = 3.25
129
+ tRs.Update
130
+ tRs.MoveFirst
131
+ Set tSheet = ThisWorkbook.Sheets.Add
132
+ tSheet.Cells(1, 1).Value = "aa"
133
+ Call tSheet.Cells(2, 1).CopyFromRecordset(tRs)
134
+ tRs.Close
135
+
136
+ Set tRs = CreateObject("ADODB.Recordset")
137
+ tRs.Fields.Append "aa", 135 ' 135:adDBTimeStamp
138
+ tRs.Open
139
+ tRs.AddNew
140
+ tRs.Fields("aa").Value = #5/5/2025 3:14:21 PM#
141
+ tRs.Update
142
+ tRs.AddNew
143
+ tRs.Fields("aa").Value = #5/5/2025 11:12:21 AM#
144
+ tRs.Update
145
+ tRs.MoveFirst
146
+
147
+ Set tSheet = ThisWorkbook.Sheets.Add
148
+ tSheet.Cells(1, 1).Value = "aa"
149
+ Call tSheet.Cells(2, 1).CopyFromRecordset(tRs)
150
+ tRs.Close
151
+
152
+ End Sub
153
+ ```
154
+
155
+ 日付型でないデータであっても2シート目の出力の日付型の所を1シート目で書式変更してしまうようです。
156
+
157
+