0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

あるブックの任意の範囲を別のブックの指定した箇所にコピペする その2

Last updated at Posted at 2019-02-27

今回は、前回作成したマクロ
『同じフォルダ内にある「○○一覧.xlsx」の任意のシート内容をそれぞれ別のファイルに転記する』
を配列と繰り返し構文を使用して改修しました。

Sub tenki1()
 
'○○一覧を開く
    Workbooks.Open ThisWorkbook.Path & "\◯◯一覧.xlsx"
    
'シート名を配列に入れる ※ブック名は「シート名YYMMDD」とする
    Dim sheetName(1) As String
    sheetName(0) = "商品マスタ"
    sheetName(1) = "顧客マスタ"
       
'繰り返し変数の宣言
    Dim i As Long
    For i = 0 To 1
        
'シート内容を転記することを繰り返す
    For i = 0 To 1
    Worksheets(sheetName(i)).Activate
    Cells(1, 1).Activate
    Worksheets(sheetName(i)).UsedRange.Copy
    Workbooks.Open ThisWorkbook.Path & "\" & sheetName(i) & "YYMMDD.xlsx"
    Worksheets("データ").Range("A1").Select
    ActiveSheet.Paste
    Range("A1").Select
    ActiveWorkbook.Save
    ActiveWindow.Close
   Next i
    
'○○一覧を閉じる
    ActiveWindow.Close
End Sub

繰り返し構文を使用したので、乱雑な感じは少し減りました。
でも、ブックに転記するシートの名前・数が変わると対応できないので、それを解決して汎用性を高くしたいです。
セルにシート名を記載してそれを参照するようなコードに改修したら解決する気がするので、
まずは、それを目標に頑張りたいと思います。
あと、ブック名とシート名に相違があった時などにメッセージ表記もしたいですね!

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?