• ベストアンサー

Excelの行の移動について

画像のようなToDoリストを作って、C列に優先度(A~D)を入れ、G列は入力規則でチェックを入れることができるようにしています。1番下から新規タスクを入力していく仕様です。 そこで、上から優先度の高い順に自動で並べ替え、G列のチェックを付けると表のまだ未入力な1番下の非アクティブな行に自動で移動するような仕組みにしたいのですがどうすればよいでしょうか。 VBAでも可です。

  • mzakom
  • お礼率38% (129/338)

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

  • ベストアンサー
回答No.1

VBAをある程度理解された方という前提で考え方を説明します。 1.入力済み範囲をチェックの列で並べ替え(昇順か降順かはやってみてください)すれば、チェックのある行が下部に集まります。 2.これを、マクロの記録をONにして実行すれば、VBAのプログラムの基本が出来上がります。 3.入力済み範囲を自動で取得するのは、下記数式で、データ最終行の行番号を取得すればよいでしょう。        n=Range("A1").End(xlDown).Row 理解できないところがあれば再質問ください。

mzakom
質問者

補足

回答ありがとうございます。 思い通りのものができました。 ちなみに、アクティブセル習得のNを変数制限する場合は、何を使えばいいのでしょうか。 わからないので、バリアント型にしているのですが、指定のものがあればご指摘よろしくお願いします。 Dim N As Variant

関連するQ&A

  • エクセル VBA

    最終行から順番に下へ同列で入力するVBAを教えて下さい。 EXCELのVBAで教えて下さい。 シート1のA列にはB列が入力されると自動入力されるNo.があり、C~G列もB列が入力されると自動入力されます。 B列には日付が、H列には3~4桁の数字が入力したいのですが、 入力行は必ず最下行のセルB、Gな為、VBAでフォームを作成し、 入力実行ボタンを押すことにより、最下行のセルB、Gに反映されるように したいです。 又、上記入力後に、シート2のH~N列をコピーして、シート3のA~G列に値のみの貼り付けを行い保存した後、シート3のA~G列をコピーして csvファイルを作成して保存したいです。 一連の流れを、フォームの入力実行ボタンを押すことで実行したいのですができるのでしょうか? 宜しく御願い致します。

  • Excel VBA B列を検索して1行下をコピぺ

    はじめまして。 VBAを始めたばかりですが、自分ではどうにもならないので、教えていただければと思い、初めて質問致します。 A1~G1、1行目から1000行目まで各セルに数字がランダムに1つずつ入っているデーターSheet1があり、コマンドボタンを押すことによってMsgBoxに入力した数字をB列を下に検索していき、例えば、数字の8が入力されたら、B1から下にB列に8が出現したらそのセルの1つ下の行(A列~G列まで)をコピーしてSheet2に抽出したいと考えているのですが、なかなか出来ず、困っています。 イメージとして A B C D E F G H I 1 5 14 30 25 30 3 9 2 22 34 6 7 29 49 3 3 1 8 20 4 10 6 45 4 30 15 34 50 2 5 9 5 11 8 45 7 6 20 1 6 40 8 48 25 36 4 10 7 21 22 30 28 6 7 36 8 2 3 50 2 1 43 6 と、データがSheet1に仮にあって、8が入力されたなら4行目の 30 15 34 50 2 5 9 と 6行目 40 8 48 25 36 4 10、7行目 21 22 30 28 6 7 36という様に抽出されてSheet2に 上から順に貼り付けられる様にしたいので、皆様の御知恵をお貸しいただければと 思っております。かなり複雑かとは思いますが、どうか宜しくお願いいたします。 FINDやOFFSET、IF文、ループ等を使ってみましたが私のレベルでは全く話になりませんでした。 まだVBAかけだしなもので、なるべ簡単なくプログラムでお願いいたします。

  • Excelの振り分けについての使い方

    ExcelでTodoリストを作成しようと考えています。 そこで以下のようなことをしたいのですが、できるのでしょうか。 まず、 A列→やるべきことをすべて書く B列→日付 C列→B列に入力した日にできるやるべきことの個数 D列→B列に入力した日にやるやるべきこと 分かりにくい表現ですみません、図を掲載するので理解お願いします。 A列に入力したやるべきことをC列に入力した個数分だけD/E/F/G列を自動的に入力させたいのです。 要するに上の図から下の図へ関数やマクロを使って自動でやりたいです。 図はhttps://sites.google.com/site/picturestock1234/home/yahoochiebukuroです 回答よろしくお願いします。

  • エクセルVBAについて

    エクセルVBAについての質問です。A1、B1と順に入力していき、最終 F1列にカーソルがいったときに(F1を空欄のまま)エンターキーを押すと次の行のD2にカーソルが飛ぶ、そしてD2、E2に入力をして、G列にカーソルを動かしエンターキーで次の行のA列にカーソルが移動する、こんな操作をしたいのですが。つまりF列にカーソルがいったらカーソルは次の行のD列に飛び、G列にカーソルがいったら次の行の先頭つまりA列にカーソルが移動するように。VBA初心者でもつくれるかどうか、よろしくお願いします。

  • ExcelでEnterを押したあとの移動先について

    A5:H(仮に)500の表があります。 現在、(例)A6→B6→C…と横方向に入力し、H6を入力したあとEnterの押打でA7にもどり、次行のA7→B7→C…の順に入力しています。 もどる操作はAlt+F11で貼り付けた下記のVBAがやっています。 これまでは、表A5:H500の空行(データが入ってない最下行)をアクティブにしたあと、例の順にデータを入れていくだけだったのですが、形式を変えたため入力箇所が増え、A2とA3を入力してから空行に入力する手順になりました。 希望は、A3を入力してEnterを押打したあと、次に入力するセル=表の最下行のA列のセルに移動していたいのですが、それにはどうのようなVBAがよいのでしょうか。 (以下は、考えるヒントになればと思い書き加えます。) この表はVLOOKUPで使われるデータが入っており、A5以下のA列はひとつだけ"あ"が入り、残りは空欄です。 検索値は都合で"あ"という文字にしました。 1行(1レコード)入力して印刷、また1行入力して印刷、また…の繰りかえしで、たいてい入力済みの最下行のA列が"あ"になっています。 この"あ"が新規で入れる行(データが入ってない最下行)のひとつ前にあることが多いので、A3を入力してEnterを押打したら"あ"の下に移動することを希望しますが、無理なら"あ"に移動したあと手動の矢印キーで↓を押しますので、よいお知恵をよろしくお願いします。 (下記の「H列からA列にもどるVBA」もこのサイト内を検索して見つけてきたものです。) ------‐H列からA列にもどるVBA------‐ Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Column = 9 Then Cells(Target.Row + 1, 1).Select End If End Sub

  • エクセルで文字最終行の空白セルへ移動

    エクセル2000です。 1000行内で間にとびとび(順不同)に空白セル、他は文字有りです。 (1000行目は文字あり) シートが10個あり、各シートともばらばら(ウィンドー枠固定位置)ですが、ウィンドー枠固定内の行に「最終行へ移動」のボタンを設け、いずれの行からも、最終文字入力の次の行空白セル(AからZ列のいずれか)へ移動したいです。 方法がありますでしょうか? VBAの場合、素人につきVBAへの入力方法等も一緒にお願いします。またVBAの場合、ソフトを立ち上げたら直ぐに実行できるようにしたいです。(立ち上がり時のマクロ警告はあり) よろしくお願いいたします。

  • エクセルを日付で並べ替えると行がずれます

    エクセル初心者です。何度もお世話になっております。 A列  B列  C列  D列  E列  F列  G列 日付  大分類 中分類 小分類 人名  数値  備考 こんな感じで、数百行入力してあります。 A~E列がリストになって枠で囲まれています。 B~D列にはINDIRECT関数を使って入力規制が設定してあり、ポップアップで、例えば中分類の「ほ乳類」→小分類「偶蹄類、奇蹄類、、、etc.」が選べるようになっています。 適当な順番で入力してから、日付の昇順に「並べ替え」をしたら、行がずれてしまいました。 リスト内のA~E列は日付け順に並べ替えられたものの、F~G列がそれとくっついて移動せず、最初の行の並びが崩れてしまったんです。 --------------------------------------------- 3月5日 生物  ほ乳類 偶蹄類  ヒツジさん 体重20kg  毛がもしゃもしゃ 3月4日 無生物 機械  運搬機械 自動車さん 体重1トン メタリック塗装     ↓  3月4日 無生物 機械  運搬機械 自動車さん  体重20kg  毛がもしゃもしゃ 3月5日 生物  ほ乳類 偶蹄類  ヒツジさん  体重1トン メタリック塗装    --------------------------------------------- よろしくお願い致します。

  • エクセル-順位の自動変更

    はじめまして。 うまく説明できるかわかりませんが、どうぞよろしくお願いします。 エクセルでA列に1から50までの数字が優先順位として降順で入力されているとします。優先順位が変わったときに、例えば、優先順位が3だったセルに1と入力した場合、下記のように自動的に優先順位を再計算するようにできるものでしょうか?  A   A               1   1               2   2               3   1(3から1に変更)       4   4               5   5               .   .               .   .    (変更後)  A  2  3  1  4  5  .             .  自動的に順位を再計算できれば、その後対象データを新しい優先順位順に並べ替えようと思っています。 何卒お力をお貸しください(><)

  • エクセル 入力した年月日によって、行を入れ替えることって可能ですか?

    A列1行目:2008、B列1行目:11、C列1行目:20といったように、 セルが分かれて年月日が入力されているデータがあります。 このデータに後から下の行に入力していく年月日が、例えば、 A列2行目:2008、B列2行目:10、C列2行目:20の時、 この2行目の年月日の方が、1行目の年月日よりも先の日付となりますが、 この時、1行目と2行目を自動で入れ替えてくれるような仕組み?を 組むことは可能でしょうか? お知恵を貸して下さい。よろしくお願いいたします。

  • EXCELで自動的にチェックボックスの追加

    って可能でしょうか。 イメージとしてはA列にデータが入力されたら、B列にチェックボックスを自動的に追加し、選択できるようにし、あとはVBAが対象レコードを処理するみたいな感じです。 お願いします。

専門家に質問してみよう