• ベストアンサー

セルの移動(マクロ)

今晩は! お世話になります。 エクセルで多量データ(500行以上)あります。 本来ならば、データ量が多い場合、アクセスを使用した方が良いのかもしれませんが、データを元にグラフ作成等行う為、エクセル使用しています。  そこで、500行以上の次行に入力する際、スクロールするのは面倒なので、ボタン一つで入力する先頭行に移行するマクロを作成したいのですが、まだ自分でプログラムを作成するのは難しく、本などで同じ目的のマクロを見つけ、移している程度です。 今回、同じ目的のマクロが見つからず、ショートカットキーで行うやり方の必ず漏れがなく入力される列(No.「A列」)にセルを選択し、”Ctrl+↓”で入力済みの最後尾に移動。その後”Enter"で次行、入力するセルに移るという事で、この行動を”マクロの記録”をしてみました。 マクロの記録 ~(A4「No.1」)のセルを選択 ~ ”Ctrl+↓” ~ ”Enter"   の順です。 例にA4=No.1でA4~A6(No.1~No.3)まで記入しました。  標準モジュールの内容は・・・ Sub セルの移動() ’ ’セルの移動Macro ’マクロ記録日 : XXXX / X / XX ユーザー名:XXXXXXX ’ ’Keyboard  Shortcut:Ctrl+t ’   Range("A4").Select   Selection.End(xlDown).Select   Range("A7").Select End Sub ・・・と記入されています。 ですが、これでは Range("A7").Select と”A7”と指定されている為、 A7以降の行が入力されていても A7 に移行してしまいます。  これをA列のNo.(連番)が記入されている次行(連番が未記入の先頭行)に移動させるにはどこをどう修正すれば良いのでしょうか? お手数お掛けしますが、上記希望内容に相応しいプログラムのを教えて頂けると助かります。 初心者の為、宜しくお願いします。

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

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

Sub sample() Dim lastrow As Integer lastrow = Range("a65536").End(xlUp).Row Range("A" & lastrow + 1).Activate End Sub A列の最終行を取得して、その次の行をアクティブにします。

s-k-pooh
質問者

お礼

sakura9113さん、回答ありがとうございます! 早速会社で使用の為、明日やってみます。 もし、やってみて補足する時は、すいませんが宜しくお願い致します。

その他の回答 (2)

  • suz83238
  • ベストアンサー率30% (197/656)
回答No.3

A列だけ見るんなら Sub yyy() Range("A65536").End(xlUp).Offset(1, 0).Select End Sub

s-k-pooh
質問者

補足

suz83238さん、再度回答ありがとうございます! とりあえず、空欄の無いセルの列は”A列”のみなので、A列重視の法がよいですよね。  途中、空欄のセルがあっても入力済みの最終行って読み取れるのですか?  全くの素人ですいません。

  • suz83238
  • ベストアンサー率30% (197/656)
回答No.2

最終行の次という解釈でいいですか? それなら Sub xxx() ActiveSheet.Cells.SpecialCells(xlLastCell).Offset(1, 0).Select End Sub

s-k-pooh
質問者

お礼

suz83238さん、回答ありがとうございます! 早速会社で使用の為、明日やってみます。 もし、やってみて補足する時は、すいませんが宜しくお願い致します。

関連するQ&A

  • エクセル VBAマクロ セルの単純移動

    基本的な質問ですが、よろしくお願いします。 エクセルのVBAで、Selectセルを1つだけ上下左右に移動させることを ”汎用的に書く”としたらどのようにすれば良いでしょうか? 例えば、Selectセルを一番上や、一番下、へというのであれば、 Selection.End(xlUp).Select Selection.End(xlDown).Select 一番右や、一番左なら、 Selection.End(xlToRight).Select Selection.End(xlToLeft).Select のように書いて、実行できます。 それでは、今いる所のすぐ隣りのセルへ移動させるということを 同じように表現するには、どのようにしたら良いでしょうか。 事の発端は、 マクロの自動記録を使って、セルを移動していっても、 Range("A1").Select Range("B1").Select Range("B2").Select Range("C2").Select Range("C3").Select : のように、絶対セル位置で記録されてしまうため、 同じような処理を順に隣りや後の行・列に向かって繰り返すような処理を 書こうとしたときに、汎用的には動いてくれないところからです。 参考になるページを自力では見つけられませんでした。よろしくお願いします。

  • Excel2007 セルの移動

    セルに数値を入力しています。 A1 B1 A2 B2 と2行2列のセルに数字を拾い入力します。 セル移動は右と指定してあります。 B1入力後A2へ移動する際方向キーやマウスを使わず 左下移動するショートカットキーはないでしょうか? マクロも記録程度ならできますので ご教授いただきたいです。

  • セル移動マクロを教えて下さい。

    エクセルで最終行の次の行(新規入力となる行)の左4つ目のセルに移動するマクロを作りたいのですが、出来るでしょうか。 例えば列Aに1から3000までのNOが入っているとします。 B列からD列までは他のデータに使用しているため新規入力データE列の行から右に入力しています。 NO125の行までデータ入力している場合、ボタンをクリックすれば、A列のNO126(新規入力行のA列)にセルが移動するマクロです。 よろしく、お願いいたします。

  • 指定するセルのRange書き込み変更

    Sub 移動と削除() Range("A1").Select Selection.Cut Destination:=Range("E1") Range("A1").Select Selection.Delete Shift:=xlUp End Sub 自動マクロで作った上記の記録があります。これをA1固定ではなくA列の指定するセルにし E1もA列で指定したセルと同じ行のE列にしたいのですが書き換える方法をおしえてください。

  • VBA 動作の後、動作した行のA列にカーソルを移動

    エクセル2010を使っております。 以下の動作を自動記録したプロシージャが次のものですが、これに改良を加えたくて、 相談させていただきました。 (1)一覧というシートにおいて、A3セルからCtrl + ↓でA列の入力行の最下行に異動して、  そのセルの値をコピーし、A3セルに貼りつける、 (2)請求書というシートを選び、印刷する。 (3)一覧というシートに戻り、A列の入力行のうちの最下行に異動する。 ※A3セルに値を貼りつけると、3行目のB列以降→請求書シートという順にデータが飛び、 4行目からのデータを適宜に印刷したい思っております。 Sub 印刷() Range("A3").Select Selection.End(xlDown).Select Selection.Copy Range("A3").Select ActiveSheet.Paste Application.CutCopyMode = False Sheets("請求書").Select ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _ IgnorePrintAreas:=False Sheets("一覧").Select Selection.End(xlDown).Select End Sub 改良したい点としては、以下のとおりです。 (1)A列の入力行の最下行ではなく、カーソルのある行(編集可能にしているとは限らない)の A列の値をA3セルに貼りつけるようにするにしたい。 (2)印刷した後、一覧シートのA列、最下行(印刷した行)にカーソルが移動するようになっていますが、体感的な動きとしてはそれと同じく、印刷した行(最初にカーソルのあった行)のA列にカーソルが移動するようにしたい。 どなたか、教えていただけると助かります。 よろしくお願いいたします。

  • Excel マクロ 最終セルが毎回違う場合

    マクロ初心者です。 自動記録でマクロを作りました。 最終行が毎回違うので、「コピー(オートフィル)をA列の最終行にあわせてする」と作りたいです。 自動記録ではJ71までコピーになっていますが、J71をA列の最終行にしたいです。 よろしくお願いします。 Range("G3:J3").Select Selection.AutoFill Destination:=Range("G3:J71"), Type:=xlFillDefault Range("G3:J71").Select

  • エクセルのセルをENTERで指定箇所に移動させる

    ということをしたいと思っています。といっても、そんなにややこしい移動でなく、 A1B1,A2B2,A3B3というように、 右に一度進んだら斜め下に行く、という作業を繰り返したいだけです。 つまり、B列の入力をした後は必ずA列に戻って次の行から入力できる状態にしたいのです。 なお、移動にはENTERを使いたいと思っています。 CTRLで入力するセルに順番と名前をつけてやる方法を自分で見つけてやってみたのですが、 これだと、一度でもこの範囲内からはずれてしまうと、また一からの入力になってしまいますし、 理想はこのA列B列のどこから入力を開始しても、B列入力の後は次の行のA列に移動する、ということなのですが、、、。 入力しないセルをロックして保護する、という方法もやってみたのですが、私が何か間違っているのでしょうか、C列をロックしてもうまくいきませんでした。 なぜこのようなことをしたいかというと、誰でも使いやすいフォーマットを作っておきたいため、 このようにセル移動するシートを作成したいのです。 どなたかもしいい案があればどうぞお願いいたします。

  • Excelのマクロで1個右のセルをセレクト

    セルa1をセレクトしてますが、そのマクロを使えばb1をセレクト、そこからマクロでc1をセレクト…とマクロを使うごとに1個右をセレクトするようにするには、マクロにどう入力したら良いでしょうか? キーボードの「→」で記録すると今セレクトしてるセルにしか移動できません。 どなたか知恵をお貸し下さい。

  • エクセル オートフィルタ中の最終行移動マクロ

    表題について質問させていただきます。 行数の決まっていないA~E列までデータが入っている表があります。 仮に10行だったとして、マクロの操作でA11に移動させるには、以下で可能だったのですが、 ・Range("A65536").End(xlUp).Offset(1).Select ・Range("A1").End(xlDown).Offset(1,0).Select オートフィルタ実行中は不可視セルが選択されてしまい上記例のA11に移動できません。 オートフィルタ実行中にもA11へ移動する方法をご教授願います。 ※行数が15行のときはA16へ移動。  新規に入力する行へ移動することが望みです。 エクセル2003です よろしくお願いいたします。

  • マクロでセルのセレクト範囲を変更する方法

    マクロの記録を使って、部分的に編集して使っています。 以前BASICをやっていたので、若干理解できる部分があります。 教えていただきたいのは、例えば Range("A1").SelectのA列1行目の行の部分を for i =1 to 10 として、1行目から10行目までを順次セレクトする方法を教えてください。 よろしくお願いいたします。

専門家に質問してみよう