- 締切済み
マクロの記述について教えてください。
マクロの記述で以下のことを行いたいと思っているのですが、わかる方ご教示お願いいたします。 ある値より下の値は別シートに移動したい。 例:値が「300」であれば、それ以下の値「299以下~」を別シートに移す すいませんがよろしくお願いいたします。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- layy
- ベストアンサー率23% (292/1222)
>ある値より下の値は別シートに移動したい。 >例:値が「300」であれば、それ以下の値「299以下~」を別シートに移す ■入力値を決める方法 「300」というのはINPUTBOXで入力する、か、 特定のシートのとあるセルに入力することで対応可能、 整数であれば、「入力した値未満」か「入力した値-1以下」の値が判定値 「300」に意味があるのだから、「未満」と判定する方がわかりやすいでしょう。 ■セルの判定 判定セルがどこに存在するかで対処が変わる。 セル左上(A1)から左方向、改行して、次のA2から左方向、 これを繰り返すことでそのセルが移動対象か判定、 m行n列を指定すればその範囲で処理を行う。 とある行にのみに絞る場合、 フィルタを使う。 もしくは 対象の列(C列)とか決めて、C1からC2、C3・・・、 下方向へ繰り返す。 ■別シートへ移動する方法 移動元のシート名、移動先のシート名が何なのか、決める必要あり。 移動先は移動元と同じ状態を保持するとして、 それぞれで現在どの位置にカーソルがあるか保持する必要あり。 シート1の5行目に対象値あり→シート2の2行目へ シート1の7行目に対象値あり→シート2の3行目へ ・・・ いろいろ機能的にどうなの?というのは決めなければ できないので、そこはお任せするとして、 INPUTBOX関数、FOR~NEXT文、は使います。 セルの表記も参考に。 http://www.voicechatjapan.com/excelvba/VBArei2.htm http://www.k1simplify.com/vba/tipsleaf/leaf210.html
- hallo-2007
- ベストアンサー率41% (888/2115)
別のシートに条件にあったデータを抽出するということですね。 基本形ですが、一度、フィルターオプションの設定について勉強してみてください。 http://www.eurus.dti.ne.jp/~yoneyama/Excel/filter3.htm などが参考になります。 手操作で出来るようになったら、マクロの記録を実行してみるとご希望のコードが あられます。
- ichhabehunger
- ベストアンサー率55% (27/49)
こんばんは。 オートフィルタで取り出してコピー、ペースト オートフィルタでもとの値を削除 でいけます。
- mu2011
- ベストアンサー率38% (1910/4994)
一例です。 Sheet1のA列のデータをSheet2のA列に移動しています。 Sub sample() Set ws1 = Sheets("Sheet1") Set ws2 = Sheets("Sheet2") key = 300 j = 1 For i = 1 To ws1.Cells(Rows.Count, "A").End(xlUp).Row If ws1.Cells(i, "A") < key And ws1.Cells(i, "A") <> "" Then ws1.Cells(i, "A").Cut ws2.Cells(j, "A") j = j + 1 End If Next End Sub
お礼
ご丁寧にありがとうございます。 がんばってみます。
お礼
ありがとうございました。がんばってみます。