- ベストアンサー
EXCEL 必要な条件だけを別シートに自動コピーさせる方法
matsu_junの回答
- matsu_jun
- ベストアンサー率55% (146/265)
#3のmatsu_junです。 > 4) Alt + F11 で、Visual Basic エディタを起動させる この部分を以下のように操作し代えてください 4) Excelのメニューから「ツール(T)-マクロ(M)-マクロ(M)」でマクロウィンドウを表示させ、「シート整理」を選択した後、右の「編集(E)」をクリックする。 4.5) すると自動的にVisual Basic エディタが起動し、右側に Sub シート整理() ' ' シート整理 Macro ' マクロ記録日 : 2005/2/20 ユーザー名 : ○○ ○○ ' ' End Sub と書かれた部分が表示されます。 ここを、5)の 'ここから---------------------------------------------------------- から 'ここまで---------------------------------------------------------- の部分にサクっと置き換えてやればOKです。 ここまでの操作には、A列とB列が埋まっていないことは関係ありません。 なおA列には「販売」、B列には「場所」が入っているものとして考えていまして、販売月だけが入力されていて場所が入力されていない行や、場所だけが入力されていて販売月だけが入力されている行があるとよろしくない。特に前者(販売月だけが入力されていて場所が入力されていない行がある)の状況だと、マクロの処理が途中で終了してしまいます。 その程度のことですので、ご心配ないよう。
関連するQ&A
- エクセルのシートを自動でコピー
エクセルの2000を使用しています。 こんなことが出来るかどうか教えてください。 「原紙」というシートをコピーして自動的に6月だったら6月1日から30日までのシートを作成したいのです。シート名は6月なら20070601とか日にちのわかるような表示のシート名にしたいのです。 毎回コピーをとってシート名を変更しているのですが、これが結構手間がかかってしまします。 宜しくお願いします。
- ベストアンサー
- オフィス系ソフト
- Excelで条件別にシートを振り分ける方法
初心者です。よろしくお願いします。 Excelで条件別にシートを振り分ける方法を教えてください。 名簿の管理をしています。 シート1にNoや名前を入力し、条件ごとに別シートに行ごと自動で振り分ける方法がありますか? 情報を入力するのは、シート1のみで、 シート2~6を自動で振り分けたクラス名簿という形にしたいです。 現在、以下のようにシート1を作成してます。 列A 列B 列C 行1 No 氏名 クラス 行2 1 花子 A 行3 2 太郎 C 行4 3 二朗 B 行5 4 京子 B 行6 5 史郎 B 行7 6 典子 C 行8 7 公子 A ・ ・ これを、シート2はAクラス、シート3はBクラスという具合に、Noと氏名を振り分けたいです。 よろしくお願いいたします。
- 締切済み
- オフィス系ソフト
- 条件にあうデータを別シートにコピーしたい。
下記のようなデータがシート1にあります。 A B C D E F 1支店 氏名 個数 〆 資格 成績 2大阪 田中 5 10 0 3大阪 小林 12 20 × 100 4東京 佐藤 20 30 50 5東京 倉本 3 10 × 0 6東京 野村 18 15 200 これを資格がD列【×】に該当するデータすべて、 E列【0】に該当するデータすべて を別シート2に一覧にしたいのです。 今回であれば A B C D E F 1支店 氏名 個数 〆 資格 成績 2大阪 田中 5 10 0 3大阪 小林 12 20 × 100 4東京 倉本 3 10 × 0 このようになるような結果にしたいのですが 毎回まずD列が【×】のデータだけを抽出して別シート3に貼り付け 次にE列が【0】のデータでかつ資格が【空白】のデータを抽出して シート3の最下部に張り付ける。 そして支店別に並び替える、という作業を繰り返していますが、 データの更新頻度が早くデータも約1000行あり順次増えていく予定です。 ですので更新のたびに一覧を作成するのに時間がかかり困っています。 何か良い方法があれば教えていただきたいのですが・・・ よろしくお願いします。 なお、例の最上段のABCDEFエクセルの列番号 最左列の12345はエクセルの行番号のつもりです。
- 締切済み
- オフィス系ソフト
- エクセルVBAで、ある文字を含んでいたら別シートに抽出したい
エクセル2002を使っています。 シート1に A列に氏名 B列に住所 C列に電話番号 のデータが300件の表があります。 B列を検索してたとえば大阪府があれば、その行(ABC列)をシート2へコピーして抽出したいのです。 VBAを使ってやりたいのですがどうしたらよいでしょうか? よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- EXCEL VBA 条件にあったものをコピー
こんにちは。 VBA初心者です(いつまでたっても) シート1とシート2は同じ表 シート1(10月)に下記のような表があるとして(範囲は決まっていて表の20行目から80行目) シート1 印 日付 商品 備考 11/3 漬物 長期保存可 1 11/4 菓子 日持ちしない 11/5 果物 日持ちしない シート2(11月)に、 印で1がついたものをものを除いてコピーしたいのです。 シート2 印 日付 商品 備考 11/3 漬物 長期保存可 11/5 果物 日持ちしない シートの保護の関係でVBAでこれをやりたいのです。 よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- シート内の一部のセルを別シートにコピー
Excelのマクロ(VBA)の記載方法について お分かりになる箇所だけでも結構ですので、 どなたかご教授を願い致します。 シートX A B C 1 data1 data2 data3 2 x data7 data8 3 data4 data5 data6 4 data7 data8 data9 シート Y A B C D 1 length 3 (任意) (任意) 2 xxxx (任意) (任意) (任意) 3 zzz (任意) (任意) (任意) 4 (空白)(任意) (任意) (任意) 上記のような2つのシート(同一Excelファイル内)があって、 シートXの一部のセルを次の条件(1~4)でシートYにコピーしたい場合 1.コピー元の列の数は、シートYの "length"と書かれたセルの右となりの数字 とする(上記では3なので、A,B,C列をコピー対象) 2.コピー元の行の数は、シートXの1~4行目までとするが、 シートXのA列のセルが"x"だったら、その行は全てコピーしない。 3.コピー先(Y)の列は、コピー元(X)の列と一つずれてコピー(BならCに、CならDに) 4.コピー先(Y)の行は、シートYのA列で1行からで始めて空白セルになった行からコピー開始。 (上記では、A列で空白セルのある4行目からコピー) 上記条件で、下記のシートYを作成したいのですが、 この場合どようなマクロ(VBA)で実現できますでしょうか。 コピー結果(シートY) A B C D 1 length 3 (任意) (任意) 2 xxxx (任意) (任意) (任意) 3 zzz (任意) (任意) (任意) 4 (空白) data1 data2 data3 5 (任意) data4 data5 data6 6 (任意) data7 data8 data9
- ベストアンサー
- オフィス系ソフト
- Excel VBAでシートのコピーをできなくするには
Excel VBAで シートのコピー及びシートの新規挿入を出来なくする事はできるでしょうか? どなたかご教示お願いいたします。
- 締切済み
- オフィス系ソフト
- エクセルで抽出したデータを別シートにコピーしたいです
エクセル2003を使用しています。 例えば、以下のような表があります。 ABC 1あ10 2い15 3あ20 4 A列が条件となり、たとえば「あ」のデータだけ抽出して、そのデータを別シートにコピーします。 同じく「い」だけを抽出して、また別のシートにコピーします。 いままでは、オートフィルタで抽出して自分でコピーをして貼り付けしていましたが、日々データが次の行に追加になるので、毎回オートフィルタしてコピーするのは大変です。 関数か、マクロかVBAを使ってする方法はありますでしょうか。 できれば日々追加になるデータのみをすでにある別シートの前日までのデータの下に追加できるようになればいいと思うのですが。 知識が乏しくできません・・・ よろしくお願いいたします。
- ベストアンサー
- オフィス系ソフト
- Excelでシートコピーすると幅が変わる
閲覧ありがとうございます。 Excel 2019で「シートの移動またはコピー」で、シートを新しいブックにコピーすると、幅が変わってしまいます。 同じブック内だと変わらないようです。 どうやら、全くサイズを変更していないセルの幅も違うようです。 シートをコピーする作業はVBAで行っています。 解決方法が良くわからず、質問させていただきました。 ・Excelのオプション変更で解決する方法 ・違う環境で同じExcelブックのVBAを使っても、幅が変更されない方法 できればどちらもご教示いただきたいです。 よろしくお願いいたします。
- 締切済み
- Excel(エクセル)
- エクセルのシートを指定してコピーするやり方
カレンダーなのですが、エクセルを複数指定して、月を変えたカレンダーの行をすべてのシートにコピーしたいのですが、2番目にあるシートだけしか反映されません。 今まできていたのですが、何かバージョンが変わったせいでできなくなったのでしょうか? 詳しいかたお助け下さい! エクセル2013
- 締切済み
- Excel(エクセル)
補足
置き換えたあと、以下の様になりましたが、OKですか? ------------------------------------ Sub シート整理() Application.ScreenUpdating = False On Error GoTo ERRHD CLMNUM# = Worksheets("元データ").Cells(1, 256).End(xlUp).Column '元データ以外のデータを削除します For Each Sh In Worksheets If Sh.Name <> "元データ" Then Sh.Cells.Delete For i# = 1 To CLMNUM Sh.Cells(1, i).Value = Worksheets("元データ").Cells(1, i).Value Next i End If Next Sh 'データをコピーします For i = 2 To Worksheets("元データ").Cells(65536, 1).End(xlUp).Row j# = 0 For Each Sh In Worksheets If Sh.Name = Worksheets("元データ").Cells(i, 2).Value Then j = 1 Exit For End If Next Sh If j = 0 Then '検索中の人のシートがない場合、新規に作成する。 Worksheets.Add After:=Worksheets(Worksheets.Count) Worksheets(Worksheets.Count).Name = Worksheets("元データ").Cells(i, 2).Value For j = 1 To CLMNUM Worksheets(Worksheets.Count).Cells(1, j).Value = Worksheets("元データ").Cells(1, j).Value Next j End If For j = CLMNUM To 1 Step -1 Worksheets(Worksheets("元データ").Cells(i, 2).Value). _ Cells(Worksheets(Worksheets("元データ").Cells(i, 2).Value). _ Cells(65536, 1).End(xlUp).Row + 1, j).Value = Worksheets("元データ").Cells(i, j).Value Next j Next i '利用しなかった不要なシートを削除するか問い合わせます。 DLTFLG# = MsgBox("利用しなかったシートを削除しますか?", vbYesNo, "確認") Application.DisplayAlerts = False For Each Sh In Worksheets If Sh.Cells(2, 1) = Empty And DLTFLG = 6 Then Sh.Delete Next Sh Application.DisplayAlerts = True ERRHD: Application.ScreenUpdating = True End Sub ------------------------------------ おかげさまで、やっとここまできました。 で、このあと、どうしたらいいのでしょうか? 東京シートに自動的にデータが入力されているとおもったら大間違いですか? 東京シートには何もありませんでした。もうひとがんばりおねがいします<m(__)m> そもそも、マクロ自体がまったくわかりません。 マクロの画面を開くので精一杯です。お手数ですが、バカ丁寧にご教示頂ければ幸いでございます。ここの書き込みでファイル添付とかできるといいのにね~