Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


2404 / 76734 ←次へ | 前へ→

【79973】Re:別々のシートにある列の結合 VBA
発言  γ  - 18/6/10(日) 11:51 -

引用なし
パスワード
   (1)Selectをできるだけしないようにするとこのように短縮できます。

Sub test2()
  Sheets(1).Columns("A:A").Copy
  Worksheets(Worksheets.Count).Columns("A:A").PasteSpecial Paste:=xlPasteValues
  
  Sheets(2).Columns("A:A").Copy
  Worksheets(Worksheets.Count).Columns("B:B").PasteSpecial Paste:=xlPasteValues
  
  Sheets(3).Columns("A:A").Copy
  Worksheets(Worksheets.Count).Columns("C:C").PasteSpecial Paste:=xlPasteValues
End Sub
------------------------------
シートを変数化すると短くなります。
そして、Columns("A:A")はColumns(1)とも書けます。

Sub test3()
  Dim ws As Worksheet
  Set ws = Worksheets(Worksheets.Count)
  
  Sheets(1).Columns(1).Copy
  ws.Columns(1).PasteSpecial Paste:=xlPasteValues
  
  Sheets(2).Columns(1).Copy
  ws.Columns(2).PasteSpecial Paste:=xlPasteValues
  
  Sheets(3).Columns(1).Copy
  ws.Columns(3).PasteSpecial Paste:=xlPasteValues
End Sub
------------------------------
これを繰り返し構文For .. Nextを使って書くと、こうなります。

Sub test4()
  Dim ws As Worksheet
  Dim k As Long
  
  Set ws = Worksheets(Worksheets.Count)
  For k = 1 To 3
    Sheets(k).Columns(1).Copy
    ws.Columns(k).PasteSpecial Paste:=xlPasteValues
  Next
End Sub

参考にしてみて下さい。

8 hits

【79961】別々のシートにある列の結合 VBA 18/6/6(水) 21:43 質問[未読]
【79962】Re:別々のシートにある列の結合 VBA マナ 18/6/6(水) 22:30 発言[未読]
【79964】Re:別々のシートにある列の結合 VBA 18/6/7(木) 23:05 質問[未読]
【79965】Re:別々のシートにある列の結合 VBA マナ 18/6/8(金) 18:56 発言[未読]
【79966】Re:別々のシートにある列の結合 VBA γ 18/6/8(金) 19:10 発言[未読]
【79969】Re:別々のシートにある列の結合 VBA 18/6/9(土) 23:17 質問[未読]
【79973】Re:別々のシートにある列の結合 VBA γ 18/6/10(日) 11:51 発言[未読]
【79980】Re:別々のシートにある列の結合 VBA 18/6/10(日) 22:21 お礼[未読]

2404 / 76734 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free