[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『エクセルの複数シートを1つのシートに単純にコピーしたい』(あらじぃ)
社内住所録なのですが複数のシートにデータが散在しており、またそれぞれのシートで列の項目名や種類がばらばらです。
頻繁に文字列検索をするのですが、そのたびに検索と置換の画面で検索場所をブックに変更するのが煩わしいので、いっそすべてのシートを1シートにまとめたいと思います。
単純に、データの入っている領域を手動で囲ってすべてのシートを別シートにcopy&pasteしてもよいのですが、更新版が頻繁に出るので毎回それをやりたくありません。(タブが10以上あります)何か省力化する方法はないでしょうか。
ちなみに、最初から列の順番も項目数も各シートでばらばらなので、何も揃えて貼ることは考えていません。単純に空いているところにcopy & pasteを繰り返して、入力されている情報が1シートに入ってしまえばそれで構いません。
< 使用 Excel:Excel2016、使用 OS:Windows7 >
(隠居じーさん) 2020/05/06(水) 17:32
https://oshiete.goo.ne.jp/qa/9159093.html
https://docs.microsoft.com/ja-jp/office/vba/api/excel.application.onkey
https://excel-ubara.com/excelvba4/EXCEL239.html
Sub auto_open() Application.OnKey "+^{Q}", "検索" End Sub
Sub auto_close() Application.OnKey "+^{Q}" End Sub
Sub 検索() Cells(1).Find "", , xlValues, xlWhole, , , , False '初期化 CommandBars.FindControl(ID:=1849).Execute '検索と置換 Application.SendKeys "%T{TAB 2}{DOWN 2}%D{TAB}" Application.SendKeys "%T{TAB 2}{DOWN 2}%D{TAB}" 'オプションを開き、ブックに変更、検索窓に移動 End Sub
(kazuo) 2020/05/06(水) 21:25
Sub 検索()
Cells(1).Find "", , xlValues, xlWhole, , , , False '初期化 CommandBars.FindControl(ID:=1849).Execute '検索と置換 Application.SendKeys "%T{TAB 2}{DOWN 2}%D{TAB}" Application.SendKeys "%T{TAB 2}{DOWN 2}%D{TAB}" 'オプションを開き、ブックに変更、検索窓に移動 End Sub
私のやっていることが違うのでしょうか?? ご指導ください。
(あらじぃ) 2020/05/07(木) 09:47
2018年よりマクロをお使いならマクロ超初心者とは言わせません。
(kazuo) 2020/05/07(木) 10:54
こんにちは ^^ 単純に丸写しモードですけど。。。^^; 既存の処理対象ブックをコピー後、一番左端に新規シートを書き 込み用に作成して、下記、BOOK名で保存してからお試しを。 [標準モジュールに下記コードをコピペです。] '********************************************************** '* zSnm に実際に読み込むシート名を記述してください「左から '* 順に読込みです。 '* 項目欄以上の記述、空白等が読み込まれることもありますの '* で、避けるならもう一工夫、必要です '* 要、[IJ00002.xlsm]で保存 '********************************************************** Option Explicit Sub OneInstanceMain() Const zProgramID As String = "IJ00002.xlsm" Dim zTb As Workbook Dim zWs As Worksheet Dim i As Long Dim zSnm() As Variant Dim zVar As Variant Set zTb = Workbooks(zProgramID) Set zWs = zTb.Worksheets(1) zWs.UsedRange.Clear zSnm = Array("A", "B", "C", "D", "E", "F", "G", "H", "I", "J") i = 1 For Each zVar In zSnm With zTb.Worksheets(zVar) .UsedRange.Copy zWs.Cells(i, 1) i = zWs.UsedRange.Rows.Count + 1 End With Next Set zTb = Nothing Set zWs = Nothing Erase zSnm End Sub とかでも (#^.^#)。。。m(_ _)m (隠居じーさん) 2020/05/07(木) 13:31
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.