エクセルのマクロで特定の文字があるときだけコピーできるようにする方法

このQ&Aのポイント
  • エクセルのマクロを使って特定の文字がある場合にコピーする方法について説明します。
  • 具体的には、B列に「*」以外の文字がある場合にその左のセルを下のセルにコピーし、右のセルを指定したセルにコピーする処理を繰り返します。
  • この作業を「ココマデ」と書いているセルまで繰り返すことで、特定の条件の時にのみコピーが行われるマクロを作成することができます。
回答を見る
  • ベストアンサー

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

エクセルのマクロで特定の文字があるときだけコピーできるようにしたい エクセルでこういう表があるとします ココカラ 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にコピー・・・ という作業をセルに「ココマデ」と書いているところまで繰り返す、というマクロを作りたいのですが、どうすれば いいのでしょうか?

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

  • ベストアンサー
  • mar00
  • ベストアンサー率36% (158/430)
回答No.1

A列に連番、B列にアルファベット又は*、C列に数値が 入力されているという事でよいでしょうか。 その場合 Sub Macro1() COUNTER = -1 For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row If Range("B" & i) <> "*" Then COUNTER = COUNTER + 2 Cells(50, COUNTER) = Range("A" & i) Cells(51, COUNTER + 1) = Range("C" & i) End If Next End Sub で出来ると思います。

関連するQ&A

  • Excel で特定の文字を取り出してその文字だけをコピーする方法

    VBAや関数に詳しくないので、というよりもExcelにあまり詳しくないので、とりあえずこうすればできるという方法を具体的に教えていただければと思います。 やりたいことは2つあります。内容はそれぞれこんな感じです。 (1) セルA1に”・・・・・・・○”  (・は任意の文字とします。)   セルA2に”・・・・・・・×”  (抽出したい文字は最後に来ます。) とあったとしたら セルB1に”○” セルB2に”×” というふうに特定の文字をコピーする。 それらの文字が含まれていなかったり、あってもそれが最後でなければ何もしません。 (2) (1)で作ったシートを他のシートにコピーしたとして、そのシートには列2に特定の文字○、×などが入っています(空欄の場合もあります。)。この中から列2の内容が×の行を削除します。 Officeについては詳しくありませんが C、C++やJavaなどは使っていたのでスクリプトについては読んでいるうちに慣れると思うのですが、肝心のExcelを使いこなしていないのでこれをマクロで保存した方がいいのか関数にしたほうがいいのかということもはっきりしていないレベルですのでその辺も交えて教えていただけるとありがたいです。 本来であれば自分である程度の勉強をしなければいけないのはわかっているのですが、急ぎということでよろしくお願いします。

  • 2013特定文字のセル行を別シートにコピーのマクロ

    こんにちは。 Excel 2013を使用しています。 AからAKまでの列、100行ほど(行数は変化する)の表があります。 A行にアルファベットと数字の文字列があります。 その文字列は最初の7文字がアルファベットで後の9文字が数字です。 文字列に法則がありますので手作業では以下のように抽出して 別のシートにコピーしています。 表全体を範囲指定して、「データ」-->「フィルター」-->A列で「テキストフィルター」 -->「ユーザー設定フィルター」-->「抽出条件の指定」-->「??BJ*と等しい」 (A列の3,4文字目がBJになっているものを抽出しています) 「ホーム」-->「検索と選択」-->「可視セル」-->コピーして別シートにペースト この作業は手作業でもマクロの記録でも時間がかかります。 ほかに良い方法があればそれをマクロ化したいと思います。 PCに負担のかからない早くできる方法をご存じの方お教えください。

  • エクセルのマクロ

    あるエクセルのファイルにLIST(A列に呼びだすエクセルファイル名、B列からD列に呼びだしたエクセルに貼り付ける文字列があり、それが100行程度ある)があり、そのLIST A列に書かれているエクセルファイルを開き、その開いたエクセルファイルのある特定のセルにB列からD列にあるセルをそれぞれに貼りつける作業を繰り返すようなマクロはできないでしょうか? [流れ] LISTに書いてあるエクセルファイルを呼び出す→文字列を貼りつける→保存(できれば名前を変えて保存(その場合は、LISTのE列に名称を記載)→閉じる→次のLISTのエクセルファイルを開く→それをLISTの最後の行まで終わるまで繰り返す。 よろしくお願いします。

  • エクセル(マクロ) 特定セルのファイル間コピペ

    マクロで下記内容の処理を行いたいと思っております。 どのようなコードにすればよいかご教授よろしくお願い致します。 1.A.xlsを開く 2.B.xlsを開く 3.B.xlsの特定セルの値をコピーする。(特定セルを仮にB4、C7、D9とする) 4.A.xlsのC列にあるファイル名リストから「B.xls」というファイル名の入ったセルを検索する。 5.仮に5行目に「B.xls」というファイル名があれば、同じ行にある特定列 (行は固定で、例えばE5、F5、G5とする)に3.でコピーしたB4、C7、D9の値を張り付ける。 ※B4はE列、C7はF列、D9はG列に対応するものとする 6.B.xlsを閉じる 7.C.xlsを開く 8.C.xlsの特定セルの値をコピーする。(特定セルはB.xlsと同じB4、C7、D9) 9.A.xlsのC列にあるファイル名リストから「C.xls」というファイル名の入ったセルを検索する。 10.仮に7行目に「C.xls」というファイル名があれば、同じ行にある特定列 (行は固定で、例えばE7、F7、G7とする)に8.でコピーしたB4、C7、D9の値を張り付ける。 ※B4はE列、C7はF列、D9はG列に対応するものとする 11.C.xlsを閉じる 12.D.xlsを開く 以下、同じ処理を繰り返す。

  • エクセルマクロ、教えてください。

    エクセルマクロ、教えてください。 とても困っています 泣 だれかご教授をおねがいいたします。 画像のような表があり、マクロボタンを押すと、画像下のように文字列にして別シートに出力したいのですが、 賢い形で作ることが出来ません。 if文がとても多くなってしまいます。 繰り返し処理などあるようなのですが、難しくてついていけません。 だれかきれいなロジックを教えていただけないでしょうか。 お願いいたします! 条件として、 表は、いくつかあり、画像は果物4種類ですが、野菜8種類の表などにも流用できるマクロをくみたいです。 A商店を左から順番に文字列に格納して、""になるまで繰り返す・・・ ""がきたら、B商店へ・・・といった形でしょうか。 また、商店の数も不特定なので、こちらも""になるまで繰り返すという条件でお願いいたします! エクセル関数で出来るじゃんとおもうでしょうが、例として簡単なものに書き換えただけなので、 回答はぜひマクロでお願いいたします!

  • エクセルで、コピーに関するマクロ

    コピー対象は、例えば、C5に"お"、D5に"は"、E5に"よ"、F5に"う"という感じで、一つのセルに一文字ずつ横に連なるように入力されています。 貼り付ける場所は、例えば、起点をB8にすると、B8に"お"、C9に"は"、D10に"よ"、E11に"う"と、斜め下に連なる形になります。 コピー対象の起点となるセルは毎回違いますが、常に起点と同じ行に一つのセルに一文字ずつ入力されている状態になっており、どこからどこまでをコピー対象にするかは毎回指定することになります。 コピー対象の文字列を構成する個々のセルの中に、空欄のセルが含まれることはありません。また、コピー対象を構成するセルの最後のセルの右隣のセルは、必ず空欄になります。 貼り付ける場所は毎回違います。起点となるセルを指定すると、そのセルから斜め下に連なる形で貼り付けられます。 上記のことができるマクロを教えてもらいたいのですが。

  • エクセル マクロ

    エクセル マクロで、シート1のA1セルないの文字列(数式)をクリックボードにコピーするマクロを組みたいのですが、セルのコピーは出来るのですが、文字列のみコピーが出来ません。貼り付けは任意でするので必要ないです。 初心者で何もわかりません。よろしくお願いします。

  • エクセル 特定の文字を検索して置き換えるマクロ

    次のような連続作業をマクロでできますか。 A列にある特定の文字を検索して、その行にあるB列セルの文字(不定)とそのB列の1行下にあるセルの文字(不定)を連結または置換させてB列に表示 (それぞれ単独に使用) 例 A100に「○○○」の文字を見つけたら、B100にある「□□□□」とB101にある「△△」を連結させB100に「□□□□△△」と置換表示 置き換える場合 A100に「○○○」の文字を見つけたら、B101にある「△△」をB100に「△△」と置換表示 同列の置換は例題でも見つけられて利用できていますが、ひとつ下のセルがからむというのがミソです。 よろしくお願いします。 Windows7/office2013

  • Excelマクロを利用してコピーする方法について

    不特定の行を不特定の行にコピーするマクロを教えて下さい Rangeには直接セル位置を指定しなければならないと 思っているので何か方法がないでしょうか? 横に長い行を不特定位置にコピーしたいので           A列  B列  C列  D列 不特定の行  AAA 111 222 333 不特定の行  BBB 222 333 444 不特定の行 不特定の行 不特定の行 不特定の行 CCC 333 444 555  不特定の行 DDD 444 555 666   不特定の行 EEE 555 666 777  不特定の行 FFF 666 777 888  CCCが入力されているセルをクイック後、マクロを起動、BBBの下の行のセルを クイック後、CCCの行をそこにコピー そんな方法でのコピーがしたいのです 何か方法があったらお願いします

  • エクセルのマクロについて質問です。

    エクセル初心者です。 マクロを使い表を展開したいのですがどなたか是非ご教授ください。    A      B 1   1,2,3     abc という表を、    A      B 1   1     abc 2    2     abc 3    3     abc という表に出来るのでしょうか?? カンマの区切りで下のセルに改行していきB1の文字列をコピーしていきたいのです。 色んな検索をしてみたのですがエクセル初心者の私には困難でした。 よろしくお願い致します。

専門家に質問してみよう