Excel VBA質問箱 IV

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

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


826 / 13645 ツリー ←次へ | 前へ→

【78100】VBAで複数のシートのコピーをしたい かな 16/4/4(月) 11:08 質問[未読]
【78103】Re:VBAで複数のシートのコピーをしたい β 16/4/4(月) 19:11 発言[未読]
【78104】Re:VBAで複数のシートのコピーをしたい β 16/4/4(月) 19:16 発言[未読]

【78100】VBAで複数のシートのコピーをしたい
質問  かな  - 16/4/4(月) 11:08 -

引用なし
パスワード
   VBAで複数シートのコピーをしたいのですが自力では難しいので質問です。
お助けいただければ幸いです。

条件は下記です。

・シートは複数あるが数は決まっていない
・コピー元のシートの名前はいつも同じではない
・一番左のシートはコピーしない
・できればシート名を「コピー元のシート名(AAA)」としたい

この条件でVBAはどのようになるでしょうか?
よろしくお願いします。

【78103】Re:VBAで複数のシートのコピーをしたい
発言  β  - 16/4/4(月) 19:11 -

引用なし
パスワード
   ▼かな さん:

いろんな方法があります。
以下は、一例です。
ブックは新規で作成します。
(既存のブックに追加するということもできますが)

Sub Test()
  Dim done As Boolean
  Dim nbk As Workbook
  Dim sh As Worksheet
  
  Application.ScreenUpdating = False
  
  For Each sh In ThisWorkbook.Worksheets
    If sh.Index > 1 Then
      If Not done Then
        sh.Copy
        Set nbk = ActiveWorkbook
        done = True
      Else
        sh.Copy after:=nbk.Worksheets(nbk.Worksheets.Count)
      End If
      
      DoEvents  '念のため
      
      nbk.Worksheets(nbk.Worksheets.Count).Name = sh.Name & "(AAA)"
    End If
  Next
  
End Sub

【78104】Re:VBAで複数のシートのコピーをしたい
発言  β  - 16/4/4(月) 19:16 -

引用なし
パスワード
   ▼かな さん:

もう1例。

Sub Test2()
  Dim nbk As Workbook
  Dim sh As Worksheet
  
  Application.ScreenUpdating = False
  
  ThisWorkbook.Worksheets.Copy
  Set nbk = ActiveWorkbook
  Application.DisplayAlerts = False
  nbk.Sheets(1).Delete
  Application.DisplayAlerts = True
  
  For Each sh In nbk.Worksheets
    sh.Name = sh.Name & "(AAA)"
  Next
  
End Sub

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