[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『別ブックからの値の取得』(みぃ)
配布用の棚卸表を別ブックで作成したいと思っています。
データが入っているエクセルブックは、
sheet1〜19まで各部署別になっています。
A〜BE列までデータが入っています。
行数はシートによって異なります。
このデータには他部署には見せられないデータが入っているため、
B列、P列、T列、U列、W列、X列、AR列、AK列のデータを各部署別に別ブックに書き出したいと思っています。
どのように1シートに3000行くらいデータがあるため、マクロにて作成したいと思っておりますが、別ブックの値を取得する方法がわかりません。
ご教授いただけないでしょうか。
よろしくお願いいたします。
< 使用 Excel:Excel2010、使用 OS:Windows7 >
列単位でのお話なので、シートにある行数はあまり関係ないと思いますが、 こんな感じのことでしょうか。
Sub Sample() Dim srcWS As Worksheet Dim newWS As Worksheet For Each srcWS In ThisWorkbook.Worksheets srcWS.Copy '// 対象のシートが新規ブックでコピーされアクティブになる Set newWS = ActiveSheet newWS.Range("A:A,C:O,Q:S,V:V,Y:AJ,AL:AQ,AS:BE").Delete '// 見せたくない行を削除 With newWS.Parent '// コピーした新規ブック Application.DisplayAlerts = False '// 上書き警告の無視 .SaveAs ThisWorkbook.Path & "\" & Replace(ThisWorkbook.Name, ".xls", "_" & newWS.Name & ".xls") Application.DisplayAlerts = True .Close End With Next End Sub
一般的には Workbooks(ブック名).Worksheets(シート名).Range(アドレス) とすれば、現在開いているすべてのブックの中から特定のセルを指定できます。 (Mook) 2014/04/15(火) 16:21
もう一つ質問してよろしいでしょうか?
Mook様に作っていただきました上のマクロは部署ごとに別のブックが作成されますが、
ブックを1つにまとめることはできますか?
ご教授いただければ幸いです。
よろしくお願いいたします。
(みぃ) 2014/4/16(水)11:11
>各部署別に別ブックに書き出したいと思っています。 ということだったのでシート単位でファイルに分けたのですが、 全シートを一緒ということでしたら、シートコピーというよりはブックの別名 保存でよいように思います。
別名保存して列を削除する例です。
Sub Sample2() Dim srcWS As Worksheet With ThisWorkbook .SaveAs .Path & "\" & Replace(.Name, ".xls", "_公開用.xls") For Each srcWS In .Worksheets srcWS.Range("A:A,C:O,Q:S,V:V,Y:AJ,AL:AQ,AS:BE").Delete '// 見せたくない行を削除 Next End With End Sub
(Mook) 2014/04/16(水) 16:50
棚卸表が手書きで戻ってくるため入力表が必要で、
1つのブックに部署別のシートがあるほうが集計するのに便利かと思い、
追加の質問させていただきました。
これで作業が少なくなり、負担が減りました。大変、助かります。
ありがとうございました。
また機会がありましたら、ご教授いただければ幸いです。
(みぃ) 2014/04/17(木) 08:23
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.