[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『コードを短くする』(クァンタム)
お世話になっています
ChDir "C:\test" Workbooks.Open Filename:="C:\test\2017年1月.xlsx" Range("A2").Select Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select Selection.Copy ActiveWindow.Close Workbooks.Open Filename:="C:\test\2017年2月.xlsx" Range("A2").Select Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select Selection.Copy ActiveWindow.Close Workbooks.Open Filename:="C:\test\2017年3月.xlsx" Range("A2").Select Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select Selection.Copy ActiveWindow.Close Workbooks.Open Filename:="C:\test\2017年4月.xlsx" Range("A2").Select Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select Selection.Copy ActiveWindow.Close ActiveSheet.Paste ActiveSheet.Paste ActiveSheet.Paste ActiveSheet.Paste Application.CommandBars("Office Clipboard").Visible = False Range("A2").Select ActiveWindow.SmallScroll Down:=-10 Range("A1").Select ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Clear ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Add Key:=Range("A2:A5069" _ ), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Add Key:=Range("B2:B5069" _ ), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Add Key:=Range("C2:C5069" _ ), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal With ActiveWorkbook.Worksheets("Sheet1").Sort .SetRange Range("A1:M5069") .Header = xlYes .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With Selection.Subtotal GroupBy:=3, Function:=xlCount, TotalList:=Array(5), _ Replace:=True, PageBreaks:=True, SummaryBelowData:=True End Sub こういったコードを短くする方法というのはどうすればいいのでしょうか。 最終的には集計する範囲を12か月分にしたいと思っているのですが、現在のコードでも長ったらしくなって見づらいので見やすいコードがあれば教えて頂けると助かります
< 使用 Excel:Excel2016、使用 OS:Windows10 >
まず、
変数というのはご存知でしょうか?
次に、
For 〜 Next の構文はご存知でしょうか?
つまり、
プログラム始め
n = 1から12まで繰り返す (変数nに次々と値を代入する)
n月のファイルを開く
開いたファイルのデータを自ブックにコピペ
開いたファイルを閉じる
次のnの値へ
集積したデータを並び替え
小計行挿入
プログラム終わり
このような流れになると思いますが、
とりあえず、繰り返しのFor〜Nextの構文は知っておられますか?
それとも全くわかりませんか?
それから、上の擬似コードでのnの部分が
入れ替わり立ち代わり変わってくれたら
良いのが解ると思いますが、これを変数といいます。
その辺のことも理解されてますか?
理解されてないなら、その辺から話を始めなければいけませんが、
多少知ってるということなら、
まずはファイルのプルパスを次々と変える部分から、
ご自分で書いてみませんか?
(まっつわん) 2018/06/14(木) 11:53
とりあえず、コードの構造が似てるので、コメントしようとするとほぼ同じになっちゃうので[[20180602171644]]を参考にしてみてください。
(もこな2) 2018/06/14(木) 12:24
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.