• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:2013特定文字のセル行を別シートにコピーのマクロ)

Excel 2013で特定の文字のセル行を別シートにコピーする方法

このQ&Aのポイント
  • Excel 2013を使用している際に、AからAKまでの列で特定の文字列を持つセル行を別のシートにコピーする方法を教えてください。
  • 手作業では時間がかかるため、PCに負担のかからない早い方法を探しています。
  • 現在は、フィルターを使用して特定の文字列を持つセル行を抽出し、可視セルをコピーして別のシートに貼り付けています。

質問者が選んだベストアンサー

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.1

>AからAKまでの列、100行ほど(行数は変化する)の表があります >この作業は手作業でもマクロの記録でも時間がかかります ご相談の状況説明だけから想像できる範囲では、下記のようで十分に思われます sub macro1()  application.calculation = xlcalculationmanual  worksheets("他のシート").cells.clearcontents  range("A1").autofilter field:=1, criteria1:="??BJ*"  activesheet.autofilter.range.copy destination:=worksheets("別のシート").range("A1")  activesheet.autofiltermode = false  application.calculation = xlcalculationautomatic end sub 他にも application.screenupdating = falseとtrueで全体を囲むような手管も有効な場合もあります。

sherman
質問者

お礼

早速のご回答ありがとうございます。 試してみたところ、従来の方法ですとフリーズするくらい 遅かったものが、1秒ほどでできあがります。 大変驚いています。 提示していただいたコードはよく調べてほかにも応用いたします。 ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 特定の行を選択して別のシートにコピーするマクロ

    指定した行と、 特定の文字(複数)がある行を 全て選択し、別のシートにコピーする マクロをお教えいただけませんか?  選択したい行は(同じシートで)  必ず3行目と、  A列に『ABC』、『DEF』という文字がある全ての行です。 このようなマクロはどのように作ればいいでしょうか? マクロに詳しい方、お知恵をお貸し頂けませんでしょうか?

  • EXCElで特定の文字列の行をコピー

    下記のようなシートがあります。 列A~K 行1~80程度 列は変わることがありません。 行はデータ量によって40~80くらいまで変動します。 この中の特定の行をコピーして他のシートにペーストしたいのです。 コピーしたい行のK列は430という数字が入ります。 K列には430以外の数字も入ることがあります。 また、コピーしたい行の範囲は「開始」という文字列から「小計」 と言う文字列の間です。(小計の後の行にも430という数字が出てきます) マクロを使えば出来ると言うことは聞いたのですが、ヘルプを見ても よくわかりません。 わかる方いましたら是非ご教授下さい。

  • マクロで別シートに数値を移したいのですが・・・

    タイトルにありますとおり、マクロを駆使し、数値を別シートに移したいのですが なにぶんマクロに関してほとんど経験、知識はありません。 毎回手動でコピーを繰り返しているのですが、なんとかマクロで自動コピーできればありがたいです^^; 方法としては、フォームのボタンにマクロを埋め込むような形にしたいと思っております。 以下のようなシートがあったとします。 シート1 (抽出内容”平均”)    A   B   C   D   E   F   G 1  回数 25 2  2   3   4   6   3   2   9   3 1行目に、回数とあります。今回は25回目のデータとします。 2行目に、同一シートの別表から抽出された数値が並びます。 この数値は別表でオートフィルで抽出された数字ですので、毎回変更されるものとします。 今回は仮に”平均”という内容で抽出したデータだとします。 シート1 (抽出内容”合計”)    A   B   C   D   E   F   G 1  回数 25 2  10 10  20  11  15  16  8   3 同じく、25回目、抽出内容”合計”として、オートフィルで抽出した数値です。 シート2     A   B   C   D   E   F   G   H 100 回数 平均(1) 2  3  4  6  3  2  9  101 25  平均(2) 102     平均(3)  103     合計(1)10 10 20 11 15 16 8 104     合計(2) 105     合計(3) 106 107 108 回数 平均(1) 109 26  平均(2) シート2は、シート1で抽出された数値をコピーした表です。 A列は今回の回数、25となっております。この数値はこれより上に24回分の表があり、今回が25回目という意味です。 107行目以降も26、27、28と回数は続いていますが、現状では25が最新とし、108行以降は数値はなく、空白とします。 それぞれ平均、合計共に、シート1で3回抽出し、それぞれ別の数値が入るものとします。 これまでは、シート1で抽出後、手動でコピーし、シート2の該当セルに貼り付ける、という作業でした。 シート1  →   シート2  のコピーにマクロを使用したいのですが 回数が25の場合、シート2でA列を検索し、さらに抽出内容が”平均”1回目だった場合 平均(1)にコピーし、2回目だった場合平均(2)にコピーする、といった具合です。 イメージとしては、シート1に、(1)、(2)、(3) と、それぞれ入ったリストボックスなどがあり [平均][合計] のそれぞれボタンがあり、(1)を選び、平均を押すと100行目の平均(1)に入り 合計を押すと、103行目の合計(1)に数値が入る。と、いうような感じです。 この説明で私の意図するところが伝わるか不安ではありますが、このような場合に使えるマクロの式がございましたら ご教示いただけませんでしょうか^^; 実際の表とは若干ちがいますが、大まかなイメージとしては上に書いてある通りです。

  • 文字を検索してその行を別シートにコピーするマクロ

    A列 郵便番号 B列 住所 C列 名前 で出来ているファイルがあるのですが、住所欄にある市ごとにその行を別のシートにコピーさせたいと考えています。 マクロを起動させ、ダイアログボックスにコピーしたい市を入力するとSheet2又は新しいシートにコピーするマクロが出来たら助かるのですが、私用の範囲内で使いますのでご教授お願いします。

  • エクセルのマクロで特定の文字があるときだけコピーできるようにしたい

    エクセルのマクロで特定の文字があるときだけコピーできるようにしたい エクセルでこういう表があるとします ココカラ 1 * 2 b 15 3 * 4 d 19 5 e 25 6 * 7 g 35 8 * 9 j 46 10 k 54 ココマデ このような表があるとき、マクロを使ってもしB列に「*」以外の文字(この場合アルファベットのb) があるときは左のセル(2)をずっと下のセルにコピー(仮にA50とします)した後、右のセル(15)をB51にコピー、 次は文字が「*」なのでコピーはせずにd列になったら4と19をC50,D51にコピー・・・ という作業をセルに「ココマデ」と書いているところまで繰り返す、というマクロを作りたいのですが、どうすれば いいのでしょうか?

  • エクセルで抽出したデータを別シートにコピーしたいです

    エクセル2003を使用しています。 例えば、以下のような表があります。  ABC 1あ10 2い15 3あ20 4 A列が条件となり、たとえば「あ」のデータだけ抽出して、そのデータを別シートにコピーします。 同じく「い」だけを抽出して、また別のシートにコピーします。 いままでは、オートフィルタで抽出して自分でコピーをして貼り付けしていましたが、日々データが次の行に追加になるので、毎回オートフィルタしてコピーするのは大変です。 関数か、マクロかVBAを使ってする方法はありますでしょうか。 できれば日々追加になるデータのみをすでにある別シートの前日までのデータの下に追加できるようになればいいと思うのですが。 知識が乏しくできません・・・ よろしくお願いいたします。

  • Excel データの一部を別シートにコピー

    Excelで、データ行のどこかをクリックし、ボタンを押したとき、その行を別々のシートに分類してコピーさせるマクロを作りたいと思っています。 このとき、コピー先のシートをA列のデータで区別したいのです。 1.クリックした行のA列のセルを判定し、そのセルのデータを読み取る方法 2.読み取ったデータ(文字)を、コピー先シート名に指定する方法 このマクロの記述方法を教えてください。よろしくお願いします。 コピー範囲を指定し、貼り付け先のシートをアクティブにできれば、あとは記録マクロをつないで作るつもりです。

  • エクセル フィルタオプションで 特定の文字列を含む行を全て抽出する方法がわかりません

    エクセル2002を使用しています。 エクセルフィルタオプション設定で、特定の文字列を含む行を全て抽出する方法がわかりません。 たとえば sheet1    A    B    C    1 項目1 項目2 項目3  2  あ   い    う    3  う        あ    4  え        い 5      う       Sheet2   A         B         1 抽出文字列 2 あ  3   4 (計算式) 5 (以下抽出結果)   上記のようなデータがあり、sheet2!a5以降に「あ」が該当する行を全て抽出するといった式を組みたいのですが、 Sheet2 a2に抽出文字を入力し、a4に「=or(sheet1!a2=a2,sheet1!=a2,sheet1!=a2)」といった検索条件式を組み、フィルタオプションで、 ・リスト範囲 Sheet1!$a$1:$c$5 ・検索条件範囲 $a$3:$a$4 ・抽出範囲 $a$5  と指定するのですが、うまく抽出できません。 ちなみに抽出対象が文字列でなく数字なら(たとえばSheet1のデータの文字をあ→1 い→2のように全て数字に置き換えてSheet2!a2に1を入力)抽出できるのですが・・・ 文字列をセル参照して条件式を組む場合に何か気をつけることがあるのでしょうか?文章が長くなってしまい申し訳ありません。良い方法があればご教授お願いします。

  • 不要なデータを切り取って別のシートに貼りつける

    シート1に色々なデータが並べています。A列~J列、5000行くらいです。 J列に「0」「1」「#N/A」の三つの値がバラバラに並べています。 フィルタで昇順にし、「0」「1」「#N/A」と奇麗に並べます。 「0」と「#N/A」の行を切り取ってシート2へ貼り付けます。 そして次にG列に「ダウンロード」以外の文字があった場合も同様に切り取ってシート2に貼り付ける といった作業をしています。作業が大変なので、マクロで実行したいのですが、コードの記述が分からないのです。教えて下さい。 宜しくお願いします。

  • 金額欄の計算結果が500以上となる行のデータを抜出して他のシートにコピーするマクロ

    Sheet1 のA5セルから始まって、 月日、項目、数量、単価、金額(円)、備考  からなる表があります(上4行は空欄)。 E6の金額欄は「 =数量*単価 ( =C6*D6 )」の数式で示され、列方向に数十行ソートされて各行の金額が計算されています。他の欄のデータは手入力で埋められています。 この表の中から、金額欄が500円以上となる行だけを全て抜出して、Sheet2 のA3セルを起点に表示させるマクロを作りたいと思っています。 なお、データの行数は日にちとともに増えてゆきます。 「新しいマクロの記録」を使って工夫しようと思いましたが、【1】オートフィルタでは、他のSheetへの抽出が難しいようです。 また、【2】フィルタオプションの設定では、(1)検索条件範囲はSheet2を選択した状態で指定するものでしょうか? (2)金額欄が1000円以上であることの条件は、具体的にどのように指定すれば良いのか要領が分かりません。 (3)実際にフィルタリングさせてみると、見出し行だけがSheet2にコピーされ、肝心のデータ領域は選ばれないので困っています。 新しいマクロの記録を使わない、よりすっきりした方法を教えていただければその方ありがたいです。 フィルタオプションの使い方についても今後の参考として教えていただけるとたいへんありがたいのですが。よろしくお願いします。

専門家に質問してみよう