|
▼マナ さん:
親切なご指導、ありがとうございます…!
分かりやすくてとても助かります(゜-゜)
>1)Application.は省略できます。というか普通は省略します。
>他のapplication例えばWordのマクロでExcelを開くとかだと必須ですが
>ほとんどの場合、不要です。
省略できるのですね…。自分でも改めて調べてみたら、殆ど本来はApplication.が付いているものなんですね。
>2)保存する必要がありますか?
>保存しないで閉じるだけでよいのではありませんか。
確かに保存はしなくても大丈夫です…!
>3)変数wsは、毎回SETしなおす必要があります。
>このままだと、wsは、最初のブックのSheet1のままで、
>すでにブックは閉じた後なので、エラーになると思います。
変数の値の参照元が変わっても、自動で変更されるわけではないのですね!
>4)B列は、2列めなので、Columns(2)、
>C列は、3列めなので、Columns(3)と記述できます。
>繰り返し処理したいときには、このほうがよいです。
>k回目の貼付け先は、Columns(k+1)と記述できるからです。
おお、たしかに数字であれば+1が使えますね…
>以上を踏まえて、修正していただけますか。
Sub exam1()
Dim wb As Workbook
Dim ws As Worksheet
Dim wsx As Worksheet
Set wb = Workbooks.Open("C:\Users\user\Desktop\Sample\1.xlsx")
Set ws = wb.Worksheets("Sheet1")
Set wsx = ThisWorkbook.Worksheets("Sheet1")
ws.Columns(2).Copy
wsx.Columns(2).PasteSpecial Paste:=xlValues
wb.Close
Set wb = Workbooks.Open("C:\Users\user\Desktop\Sample\2.xlsx")
Set ws = wb.Worksheets("Sheet1")
ws.Columns(2).Copy
wsx.Columns(3).PasteSpecial Paste:=xlValues
wb.Close
Set wb = Workbooks.Open("C:\Users\user\Desktop\Sample\3.xlsx")
Set ws = wb.Worksheets("Sheet1")
ws.Columns(2).Copy
wsx.Columns(4).PasteSpecial Paste:=xlValues
wb.Close
Set wb = Workbooks.Open("C:\Users\user\Desktop\Sample\4.xlsx")
Set ws = wb.Worksheets("Sheet1")
ws.Columns(2).Copy
wsx.Columns(5).PasteSpecial Paste:=xlValues
wb.Close
End Sub
よろしくおねがいします!
|
|