回答編集履歴

3

誤記載の修正

2016/08/02 11:15

投稿

jawa
jawa

スコア3013

test CHANGED
@@ -280,16 +280,30 @@
280
280
 
281
281
  >'Paste'メソッドをつけなくても貼り付けできるという記事
282
282
 
283
- で紹介されている方法は、クリップボードを使用せず、セルの値を複写することができます。
283
+ で紹介されている方法
284
-
285
-
286
-
284
+
287
- ```
285
+ ```
288
-
289
- 'クリップボードを消費しないコピー
290
286
 
291
287
  rng1.Copy rng2
292
288
 
293
289
  ```
294
290
 
295
-
291
+ では、クリップボードを使用せず、セルの値を複写することができます。
292
+
293
+  **⇒ 間違いでした。Pasteの記述を省略して一行化できるだけでクリップボードは使用されます。**
294
+
295
+
296
+
297
+ クリップボードを使用しない方法は、セルの値だけのコピーでよければ
298
+
299
+ ```
300
+
301
+ rng.Value = rng1.Value
302
+
303
+ ```
304
+
305
+ で実現できます。
306
+
307
+
308
+
309
+ 書式や色もコピーしたい、となると、Value以外のプロパティもそれぞれ写してあげる必要があります。

2

tuiki

2016/08/02 11:15

投稿

jawa
jawa

スコア3013

test CHANGED
@@ -189,3 +189,107 @@
189
189
  End Sub
190
190
 
191
191
  ```
192
+
193
+
194
+
195
+
196
+
197
+ 追記に関して
198
+
199
+ ---
200
+
201
+ まとめて書いているコードを分解してあげると原因が掴みやすくなりますよ。
202
+
203
+
204
+
205
+ エラーとなるコードを以下のように分解して、デバッグ実行(F8)で1行ずつ処理を追ってみましょう。
206
+
207
+ どこでエラーになりましたか?
208
+
209
+ ```
210
+
211
+ Sub セルコピー貼り付け_その2()
212
+
213
+
214
+
215
+ 'Worksheets("データ一覧").Range("B4").Copy
216
+
217
+ 'Worksheets("USA").Range("B11").Paste
218
+
219
+
220
+
221
+ Dim sht1 As Worksheet
222
+
223
+ Dim sht2 As Worksheet
224
+
225
+
226
+
227
+ Dim rng1 As Range
228
+
229
+ Dim rng2 As Range
230
+
231
+
232
+
233
+ Set sht1 = Worksheets("データ一覧")
234
+
235
+ Set sht2 = Worksheets("USA")
236
+
237
+
238
+
239
+ Set rng1 = sht1.Range("B4")
240
+
241
+ Set rng2 = sht2.Range("B11")
242
+
243
+
244
+
245
+ rng1.Copy
246
+
247
+ rng2.Paste
248
+
249
+
250
+
251
+ End Sub
252
+
253
+ ```
254
+
255
+
256
+
257
+ デバッグ実行するとわかると思いますが、エラーになるのはPasteしている部分です。
258
+
259
+ Range型にはPasteメソッドは用意されていません。
260
+
261
+
262
+
263
+ Copy&Pasteで実行するなら
264
+
265
+ ```
266
+
267
+ rng1.Copy
268
+
269
+ sht2.Paste Destination:=rng2
270
+
271
+ ```
272
+
273
+ のような感じになります。
274
+
275
+
276
+
277
+ ただ、Copy&Pasteはクリップボードを上書きしてしまうので個人的にはあまりお勧めしません。
278
+
279
+
280
+
281
+ >'Paste'メソッドをつけなくても貼り付けできるという記事
282
+
283
+ で紹介されている方法は、クリップボードを使用せず、セルの値を複写することができます。
284
+
285
+
286
+
287
+ ```
288
+
289
+ 'クリップボードを消費しないコピー
290
+
291
+ rng1.Copy rng2
292
+
293
+ ```
294
+
295
+

1

誤記修正

2016/08/02 09:42

投稿

jawa
jawa

スコア3013

test CHANGED
@@ -22,9 +22,9 @@
22
22
 
23
23
  A列, B列, C列
24
24
 
25
+ BRZL, ブラジル, オリンピック開催される
26
+
25
27
  CAN, カナダ,
26
-
27
- BRZL, ブラジル, オリンピック開催される
28
28
 
29
29
  JPN, 日本, 母国
30
30