ファイル名に番号を振ってあるブック
data-01.xls,data-02.xls...(沢山ある)をあけて、シート名data-01 という名前のシートの特定の範囲をとってきて、同名のシートとして、別のブックにつけたしてゆくのはどういったスクリプトをかけばいいのでしょうか? つまり、複数のブックから該当すルシートを切り出してきて、それをひとつのブックにまとめたいのです。
Workbooks.Open Filename:= ブックファイル名 コピー元
Workbooks.Open Filename:= ブックファイル名 コピー先
で ブックを開き
Workbooks(ブックファイル名 コピー元).Worksheets(シート名).Select
で シートを選択
Workbooks(ブックファイル名 コピー元).Worksheets(シート名).Range(コピーしたい範囲).Copy
で、コピーしたい範囲(例:”A1:B4”)をクリップボードに取り込み
Workbooks(ブックファイル名 コピー先).Worksheets(シート名).Select
で シートを選択
Workbooks(ブックファイル名 コピー先).Worksheets(シート名).Rows(貼り付け開始位置).Select
で、貼り付けを開始する位置(左上のセル)を選択させ
Workbooks(ブックファイル名 コピー先).Worksheets(シート名).Paste
で貼り付け
といった感じでできるでしょう。
不明な部分があったので、主なやり方だけ記述したのですが
>シート名data-01という名前のシートの特定の範囲をとってきて、
これは、セルの範囲かなぁと思ったけど、
シートの複写ぽい気もするので そちらのスクリプトを書いてみます。
dim a as string
dim k as integer
Workbooks.Open Filename:= ”c:¥copyato.xls”
for k=1 to 99
a=100+k
a=right(a,2)
Workbooks.Open Filename:= ”c:¥data-” & a & ”.xls”
Workbooks(”data-” & a & ”.xls”).Sheets(”data-01”).Copy before:=Workbooks(”copyato.xls”).Sheets(Workbooks(”copyato.xls”).Sheets.Count)
Workbooks(”data-” & a & ”.xls”).Close (False)
next k
takntの作り話
上記でダメならば、ダイアリーのほうに補足します。
ありがとうございます。変数名の結合の書式 & a & などがわからなかったので助かります。
ありがとうございます。
ファイルがたくさんあるので、for 文をつかってファイル名を発生させて処理したいのですが、変数名などどうかけばいいのでしょうか? VBA詳しくないので、よろしくお願いします。