• ベストアンサー

選択した項目を上から順番にコピーするマクロ

いつもお世話になっております。 現在、チェックシートを作成しており、入力規則で”○”を選択した項目を別のセルに上から順番にコピーするマクロを考えていますが、まったく思いつきません。  A          B       C     1営業は好きだ            営業は気合だ    2営業は気合だ      ○     営業は数だ 3営業は口八丁だ      4営業は数だ       ○ と、したいのですが、どなたか、ご教示願います!

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

  • ベストアンサー
  • keirika
  • ベストアンサー率42% (279/658)
回答No.2

チェックシートをSheet1、抽出先のシートをSheet2とします。 Sub Sample() Dim Data As Range Dim i As Long Dim j As Long Set Data = Sheets("Sheet1").Range("A1").CurrentRegion j = 1 For i = 1 To Data.Rows.Count If Data.Cells(i, 2) = "○" Then Sheets("Sheet2").Cells(j, 1) = Data.Cells(i, 1) j = j + 1 End If Next Set Data = Nothing End Sub

acmr
質問者

お礼

keirika様 早速のご回答誠にありがとうございます。 丁寧なサンプルまでご用意いただき、感謝しております。

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

その他の回答 (2)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.3

マクロという言葉を思いついて、聞いている状態のようだ。丸投げだが行数が少なくてできるので1例を。 例データ A列       B列    C列 1営業は好きだ ○ 1営業は好きだ 2営業は気合だ - 4営業は数だ 3営業は口八丁だ ○ 3営業は口八丁だ 4営業は数だ ○ B列に1->4->3行の順で○を入れた。 結果 上記C列の通り ーー コードはSheet1などのChangeイベントに Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 2 And Target = "○" Then d = Range("c65536").End(xlUp).Offset(1, 0).Select Selection = Target.Offset(0, -1) End If End Sub イベント、Target.Column 、d = Range("c65536").End(xlUp).Offset(1, 0).Select、).Offset(1, 0). などがすぐ判るかな。すぐ判るようなものならVBAの勉強も苦労は要らないのだが。

acmr
質問者

お礼

imogasi様 このたびは大変お手数おかけしました。 お答えいただいたマクロを辞書などで調べながら、意味を確認しておきます。 ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。
  • higekuman
  • ベストアンサー率19% (195/979)
回答No.1

B列を上から順に見ていき、 ○だったらその行の左隣(A列)のセルの値を、 C列のデータが入力されている最後のセルの下のセルに書き込む、 ということを、A列のデータがなくなるまで繰り返せば良いだけです。 どの程度マクロの知識があるのでしょうか? 「まったくマクロが解らないから、誰か作ってちょうだい」ということでしょうか?

acmr
質問者

お礼

higekuman様 いつもありがとうございます。 お答えいただいた考え方で十分です。 ありがとうございました。

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

関連するQ&A

  • リストで分けた項目を振り分けるマクロ

    おはようございます。 EXCELのマクロに関しましてご質問があります。 シート1のE5~E200まで1つのセルに各11項目あり、(ドロップダウンで選択するようになっています。)その項目毎に入力しています。 例えばA5のセルに2.1 E5のセルに電気代 F5のセルに ¥6,500    A6のセルに2.5 E6のセルにガス代 F6のセルに ¥10,000 という感じです。 シート1のデータを他のシート(1月、2月とシートが有ります)に抽出したいです。 例えばシート1のE5の項目(11項目)を横に各項目(E1電気代 F1ガス代)に11項目並んでいて、 A2 2.1  E2 ¥6,500  他のセルは空白 A3 2.5 F3 ¥10,000  他のセルは空白 このようなマクロはどのように記述すればいいでしょうか? 宜しくお願い致します。

  • エクセル2003で別のマクロで選択したセルに別のシートからコピーして貼り付けるマクロ

    別のマクロで選択したセルに別のシートからコピーして貼り付けるマクロ、どうしても、このマクロが作れないです。 難題すぎて・・・・ 貼り付けるセルの値は選択ボタンによって変わる仕様ですが、エクセル2003で可能なんでしょうか? 難しすぎてコードが全然解らない状態です どなたかご教授願えれば幸いです。

  • コピーするExcelマクロを作りたいです(2)

    「コピー元」ブックから「コピー先」ブックにコピー&ペーストを 行うマクロを作りたいのですが、列の計算が複雑で困っています。 Excelブックのキャプチャ画像を加えて再投稿します。 画像ではシートになっていますが、画面左のシートのような表から 右のシートの当てはまるセルにデータを写すようにお考えください。 「コピー元」ブックは月に一度ダウンロードするデータで、ピボット テーブルです。一月ごとに、前月の列が各営業所ごとに増えていき ます。行には、商品ごとの売上げが入力されています。 また、各営業所ごとに、年度合計列があります。(営業所の数は10 前後、商品の行は50以上はあります。) 「コピー先」ブックは、あらかじめ年度末までの行列セル、合計列が 用意されていて、「コピー元」ブックからデータを移動してくるのみ でレポートとして毎月提出する体裁です。 単純にコピーするだけならばよいのですが、毎月各営業所一列ずつ 増えていくというのが式にして表せません・・・また、できる限り 数値の変更を最低限にして、毎年度利用できるマクロにするという 希望もあります。 ご面倒かと思いますが、お力を貸してください。

  • 各シートで条件にあったとき、セルをコピーして上から順に張り付けるマクロ

    いつもお世話になっております。 前回、条件に合致した時、指定セルを指定シートに上から順番に張り付けるという質問で、助けていただいたものです。 今回、またまた似たような内容で質問させていただきます。 各シート(随時増えていきます)のf2に"継続中"という文字が入っているとき、そのシートのb1:k2のセルを、"トップページ"シートのA1から順に貼り付けて並べるマクロを考えています。 何卒ご教示下さいますよう、お願いいたします。

  • Excelマクロで任意の項目の数値を自動コピー

    【要望】 Excelのマクロを使用して、任意の項目の数値を、任意のセルへ自動的にコピーしたいです。 さらに、マクロを実行した日付を判別して、データの抽出するセルを自動的に変えるようにしたいです。 【具体例】 マクロを組むことで、Sheet1の「*」の部分にSheet2の数字を参照して、自動的にコピーをするようにしたいのです。 さらに、実際に1月1日の日時にマクロの実行を行えば「1月1日」のデータをコピーし、 次の日、1月2日にマクロの実行を行えば「1月2日」のデータをコピーするようにしたいのです。 ////////////////////////// <Sheet1>         1月1日 1月2日   A社実績    *     *   B社実績    *     * <Sheet2>         1月1日 1月2日   B社       目標    1     1     実績    1     1   A社     目標     1     1     実績     1      1 ////////////////////////// 【問題点】 (1)Sheet2はSheet1とフォーマットが違うため、単純なセル番地の参照では、思い通りに行かない。 (2)マクロを実行する日時によって、異なる作業を行うマクロにしたいが、思い通りに行かない。 【ヒント】 教えて頂く側の立場がヒントを出すなんて大変恐縮ですが、TODAY関数をうまく利用すればできるのでしょうか...?? 以上です。 よろしくお願いします。

  • Excelマクロについて(セルのコピー)

    今、マクロで自動的にセルのデータを別シートに貼り付けるというものを作っています。 Private Sub コピー定義() Worksheets("sheet1").Activate 'sheet1をアクティブにする コピー元行 = 2 コピー先行 = 1 コピー元セル = "A" & コピー元行 コピー先セル = "A" & コピー先行 Worksheets("sheet1").Range(コピー元セル).Copy _ Destination:=Worksheets("sheet2").Range(コピー先セル) End Sub これで、sheet1のA2からsheet2のA1にコピーできるのですが、 Private Sub コピー定義() Worksheets("sheet1").Activate 'sheet1をアクティブにする コピー元行 = 2 コピー先行 = 1 コピー元行 = 2 コピー先行 = 1 コピー元セル = "A" & コピー元行 コピー先セル = "A" & コピー先行 コピー元セル = "B" & コピー元行 コピー先セル = "B" & コピー先行 Worksheets("sheet1").Range(コピー元セル).Copy _ Destination:=Worksheets("sheet2").Range(コピー先セル) End Sub とすると、B2の項目しかコピーされません。複数のセルを一度にコピーするマクロの作り方をご存じの方、ご伝授下さい。

  • エクセルのマクロでセル選択するには

    初心者です! エクセルのSheet1に30箇所のセルをマクロで選択したいのですが、 たまに選択するセルが変わります。 そこで、Sheet2のA1から下へSheet1の選択する位置を「B2」「C5」「D10」・・・としてマクロで一発で30箇所のセルを選択する方法を教えてください Sheet2のA1から下へ入力するセル位置はその都度変化します。 変化したときにそのマクロを実行すると選択できるといいのですが!! よろしくお願いします。

  • Excel2007のマクロで、選択している部分をコピーしたい

    Excel2007を使用しています。 セルをドラッグして複数のセルを選んでいるとします。 そのときに「Ctrl+C」でコピーされると思うのですが、 このコピーの動作をマクロで行いたいと思っております。 どのようなマクロを記載したら良いのでしょうか? 私なりに調べてみたのですが 場所があらかじめ決まっていれば以下のようにできるようですが、 Range("A1:A4").Copy 今回の場合は場所が決まっていないので どうしたら良いだろうと困ってしまいました。 もしよろしければ、ご教示頂けませんか? お願い致します。

  • ファイルを選択するマクロ

    ファイルを選択するマクロを教えてください。 ブックAのシートA セルA1に100という数字が入力されています。 C:\Users\Documents のフォルダの中に シート選択#100.xlsm シート選択#101.xlsm シート選択#102.xlsm シート選択#103.xlsm シート選択#104.xlsm というシートがあるとします。 やりたいことはセルA1に数字が入力されている状態でマクロ実行ボタンを押した時 C:\Users\Documentsのフォルダの中にあるシート選択#100.xlsmのシートを開きたいです。 セルA1が101ならシート選択#101.xlsmを開く。 またセルA1になにも入力されていない場合はメッセージで [入力されていません] 入力されていてもフォルダ内に当てはまる番号がない場合は [ヒットするNo.がありません] みたいな感じでメッセージを表示したいです。 宜しくお願いします。

  • エクセルでの項目のコピー(シート間)について

    こんにちは。 エクセルの項目のコピー(シート間)についてお尋ねします。 たとえば、 シート1にあるセルA1~H1までを、シート3のセルA1~H1に シート2にあるセルA1~H1までを、シート3のセルA2~H1に 自動でコピーすることはできるのでしょうか。 もしできるのでしたら、その仕方をお教えください。 (一つずつコピー→ペーストをするのが大変なので…) エクセルは超初心者のため、難しいことは全く分かりません。 よろしくお願いいたします。  m(_ _)m

専門家に質問してみよう