• ベストアンサー

作業したいセルにすぐカーソルをもっていく方法

こんばんは。 セルの移動について教えてください。 1.Excelで自分が作業しているセルから、指定したセルに すぐカーソルがいくような何かよい方法はありませんか? たとえば、C3のセルからA1にもどりたければCtrl+Homeで 戻ることはわかったのですが。。。 C3からすぐにP9のセルにダイレクトでカーソルをうごかしたい、 といったときです。 2.VBA初心者のため自動マクロでプログラムを作成し、   それをいじって作業しています。   文字列がはいってる対象のセルの範囲をすべて削除したく   対象の最初のセルを選択し、Ctrl+Shift+↓+→   でやってみたところ、実は途中に空白セルがあり、   すべての文字列がはいっている範囲が選択できませんでした。   今は手でセルの範囲を指定していますが、セルの範囲が広がる   可能性もあり、できればCtrl+Shift+↓+→のような   方法でセル範囲を指定したいのです。   たとえば、A3からD20までの範囲を選択したいとします。   A行には空白行があります。そのためA3を選択後   上記Ctrl+Shift+↓+→をおこなうと、Dの途中の列で   選択が終わってしまいます。      ですが、B列はすべて空白ではない列となっています。   その空白ではないこのB列のまず行を数えて、   それからA列からD列までの上記で数えた行分選択   するといった方法でプログラムすれば、セルの範囲   が広がったあとでも対応するのでしょうか? わかりづらくて申し訳ありません。 VBAは本当に自動マクロをいじるくらいしかできないので、 超初心者にわかりやすく教えていただけたら幸いです。 よろしくお願いいたします。

noname#53775
noname#53775

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

  • ベストアンサー
  • Yosha
  • ベストアンサー率59% (172/287)
回答No.2

>指定したセルにすぐカーソルがいくような何かよい方法はありませんか? >C3からすぐにP9のセルにダイレクトでカーソルをうごかしたい 1.シートの左上の「名前ボックス」に「P9」と直接入力し、EnterでP9セルに飛びます。 2.カーソルの移動先がP9セルで固定されている場合は、P9セルを選択しておいて、名前ボックスに例えば「選択先P9」のような文字列を入力し、Enterで確定すれば、名前ボックスに登録されます。どこからでも名前ボックスのプルダウンリストを開いて「選択先P9」を選択し左クリックでカーソルはセルP9に飛びます。 3.VBAの場合は、必要なところで、Range(P9).Selectの1行を入れれば、そこでカーソルP9に飛びます。 >自動マクロでプログラムを作成し… >…セルの範囲が広がったあとでも対応するのでしょうか? VBAでデータの入っている範囲を設定するとき、データの端のセルの位置を見つけるには、RANGEオブジェクトの、ENDプロパティーを使用します。 あなたの例では、A3からD20までの範囲を選択したい、しかしB列以外は空白のセルがある設定ですので、B列の最後の行を見つけるには、上から下への検索でなく、下から上への検索となります。コードは、 RowMax = Range("B65534").End(xlUp).Row で、変数RowEndに最下段の行番20が入ります。 Range("B65534")の65534はエクセルの最大行番ですが、データの入っている最終行番より大きい数字ならいくつでも構いませんが、上のようにしておくとデータ数がどんなに増えようが影響ありませんので、多くはこの値をとります。 列番についても同じように、RANGEオブジェクトの、ENDプロパティーを使用しますが、 ColumnMax = Range("IV20").End(xlToLeft).Column で、変数ColumnMaxには「D」でなく「4」が入ります。 Endプロパティについては、上記以外のにもいくつかの用法がありまが、長くなりますので、詳しくは、ヘルプなどを参考にしてください。 VBAを使うときは、ツール(T)→オプション(O...)⇒オプションダイアログの全般タブ左上→設定欄→R1C1 参照形式を使用する(C)をクリックしチェックマークをつけます。 これで、行/列ともに数字の表示になり使いやすくなります。 RANGEオブジェクトの、ENDプロパティーをヘルプを見つける場合について一言。 エクセルのヘルプには、VB、エクセル、VBAの3種類があるので、エクセルのマクロについてはVBAのヘルプを見ないといけないので、必ず、Bisual Basic Editorを開き、この中のヘルプを見るようにします。ヘルプの質問欄にendまたはENDを入れて、検索をクリックすると、下にトピックが表示されます。その中の「End プロパティ」「End プロパティの使用例」をみてください。また、WEBで探せば多くの記事が引っかかります。

noname#53775
質問者

お礼

ありがとうございました。 1.については名前ボックスにいれて。。。ということですね。 ありがとうございます。 そして2.についてですが、試してみました。 できました。思い通りです。 ありがとうございます。 ここで最終行の数字をみつけて、ループしてセルを選択 させることもできそうな気がいたします。 列についてもありがとうございました。 勉強をしていても、実務でなかなかどう使ったらよいか わからなかったのですが、Yoshaさんの回答を みたあとに参考書をみたら、よりわかりました。 本当にありがとうございました。

その他の回答 (2)

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

1.名前を定義しておけば、名前ボックスクリックでそこへ飛ぶ   コマンドボタンで1箇所のセルに飛ぶVBAも作れるが大げさ。   あとは何か特徴があれば、ここに補足するか再質問しては。    例えば毎回固定したセルでなく。動的なもの。入力済みの最右列の右とか 2.Range("A65536").End(xlup).Rowなど良く使うが、間に余分なものがあると用を成さない。例えば合計行が前もって設定してあり、合計の文字があるなど。 そのときは合計のすぐ上のセルを、Range("A65536"). に指定すればよい。 それもできないときは UsedRange.rows.Count Currentregion.Rows.Count などをWEB照会(UsedRange、Currentregion VBAでGoogle照会など)して、使い方を勉強してみてください。 それぞれクセがあるので、使用上の注意をよく読んで使ってください。

noname#53775
質問者

お礼

ありがとうございます。 1.については、なにかいい方法があったら程度でしたので、 VBAにするほどではなく。。。申し訳ありませんでした。 2.については、大変勉強になりました。 UsedRange,Currentregionですね。勉強いたします。 ありがとうございました。

  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.1

1.については 左上に名前ボックスに直接 P9 と入力するくらいしか思いつきません。 2.については下記のような感じで可能です。 Test1 は汎用性がありますが絶対で無く、行または列が完全に途切れていないのが条件です。 Test2 はB列の最終行を見て範囲をA~D列までを選択します。 Sub Test1()   ActiveCell.CurrentRegion.Select End Sub Sub Test2()   ActiveSheet.Range("A3:D" & ActiveSheet.Range("B65536").End(xlUp).Row).Select End Sub

noname#53775
質問者

お礼

ありがとうございました。 1.については名前ボックスにいれて。。。ということですね。 ありがとうございます。 そして2.についてですが、Test2で試してみました。 できました。思い通りです。 ありがとうございます。 イメージもわきました。 勉強をしていても、実務でなかなかどう使ったらよいか わからなかったのですが、papayukaさんの回答を みたあとに参考書をみたら、よりわかりました。 本当にありがとうございました。

関連するQ&A

  • 空白までのデータを範囲指定する

    EXCEL VBAにて教えてもらいたい事があります。 空白までの行列を範囲指定したいのです。         A  B   C   D  1   1123 123  12  57 2    32 1 5 52 3 2 98 852 11 4 65 2 72 1 A列からD列の行が空白になるまでの範囲を指定する マクロを教えてほしいです。 A列の最終行の次の行にカーソルを合わせるマクロはわかるのですが 範囲を指定する方法がわかりません。 よろしくお願いいたします。 最終行の次の行にカーソルを合わせるマクロ Range("A1").End(xlDown).Select ActiveCell.Offset(rowOffset:=1).Activate Selection.Copy

  • キーボードでのExcelの行列指定

    マウスを使わずに、キーボードのみで行/列全ての指定は出来ますか? 今は列Aを全て選択する時に、A1にカーソルを持っていって、Shift+Ctrl+↓(連打or押しっ放し)で対応していますが、効率が悪くて…。 指定後の作業は、 『切り取り』『コピー』『コピーした/切り取ったセルの挿入』『削除』です。 お分かりになる方、よろしくお願いします。

  • セル範囲選択について

    エクセルのセル範囲選択ですが、[CTRL]+[SHIFT]+[↓] で連続データの末尾まで選択できますが、空白がある場合上手くいかないと思います。 空白も含めてデータの末尾まで一気に選択する方法はないでしょうか? 列を全て選択したり、マクロを使うなどの方法以外でお願いします。

  • Excel内でのセル間のカーソル移動について質問です。

    Excel内でのセル間のカーソル移動について質問です。 セルにカーソルが乗っている状態で、キーボードの矢印キーを押すと、 その方向にカーソルが移動すると思いますが、 現在、A1にカーソルが乗っている状態で↓キーを押し続けると、 カーソルが19行目まで移動した時点で改行(列)されてB1に移動します。 そのまま↓キーを押し続けていると、B19に達した後C1に、C19に達した後D1に、 というように、 最下段が19行目であるかのような振る舞いをします。 どういった原因(機能)でこのようなことが発生しているのでしょうか。 この19行目を1行選択し「削除」することで、20行目が最下段になるようです。 つまり何か設定されているのだと思うのですが。 なお、19行目以降に数値の入力は可能ですし、保護もかけておりません。 また、このファイルはそれなりにマクロを組んでいます(新規で開いたものではない、と言いたいだけで、マクロが影響しているかどうかわかりません)。 何かわかる方いましたらよろしくお願いします。

  • Excel VBA アクティブセルからある一定のセルまでの範囲選択

    Excel VBA アクティブセルからある一定のセルまでの範囲選択 Excel2003を使用しています。 アクティブセルからC列に『計』と入力されている行の1行上のD列までを選択状態にするマクロを作成しようとしています。 C列に『計』と入力されている行は下記のように複数あるので、アクティブセルの行以下に入力されている次のC列の『計』の1行上までとしたいのですが、どのようにコードを書いたらいいでしょうか? 例えば… A2セルをアクティブにしていてマクロを実行するとA2:D3が選択状態に A7セルをアクティブにしていてマクロを実行すると、A7:D9が選択状態になるように という具合です。 わかりづらくて申し訳ありませんが、よろしくお願いします。    A     B     C     D 1  日付    №   品名    金額 2  1/1     1    ○○○   1,000 3  1/2     2    ×××   1,500 4              計      2,500 5 6 7   1/1     5    ○×○   2,000 8   1/3     6    ××○   1,200 9   1/4     7    ×○○   2,500               計      5,700            :            :

  • マクロにて空白のセルを一括して消去でなく削除したい

    空白のセルを一括して、空白セルについた色も含めてマクロで全て削除したい。 現在のデータ(仕様)について 1.Sheet2に列ごとにセルに色をつけ、データもあるとします。 2.A列10行・B列6行・C;列18行というように、列によってデータの入った範囲が違います。 3.どの行も途中に空白セルはなく、詰めたデータです。 以上です マクロで一括処理したいと思いますが、このようなことができるコードを教えて頂けませんか。よろしくお願いします。

  • エクセルVBAで空白セルを削除する方法

    みなさん教えてください。 今エクセルVBAで、下記のようにのA列に空白セルがある場合にそのセルを削除し、 空白セルが無い場合何もしないと言うマクロを作っています(下記のように自動記録し ました)。 しかし、作成したマクロは、下記のようにA列に空白セルがない場合はエラーが出てし まいます。 空白セルが無い場合エラーが出ない方法を教えて頂けないでしょうか。 よろしくお願いします。 <マクロ> Sub Macro1() Columns("A:A").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Selection.SpecialCells(xlCellTypeBlanks).Select Application.CutCopyMode = False Selection.Delete Shift:=xlUp End Sub <データ> A --------- 1 2 1 1 1 3 4 ・ ・ ・ (以降約300行続きます)

  • エクセル/マクロ/セルの選択について(初心者です)

    最近マクロ機能を使い始めた初心者です。 マクロの記録を使い、ちょっとだけVBEで触っています。 以下のような場合、なんと記述すればよいでしょうか? 詳しい方にはとても簡単だと思われ、お恥ずかしいですが、 教えていただけましたら幸いです。 【実現したい内容】 あるセル範囲を指定している時に、実行すると、 指定していた範囲の行の、A列のみが選択される ※例えばB1:B3、またはC1:C3、またはD1:E3 のをセル範囲を選択している時に、マクロを実行すると いずれの場合もA1:A3を選択する。 表現が分かりにくいでしょうか…?

  • Excelのセルの中の見えないデータを消す方法

    Excelで以下のようなデータがあります。 A1にカーソルを置いてctrl+↓を押せばA5に飛ぶはずですが 空白のセルに何か入っているようで列の最終行A9まで行ってしまいます。 F2、エンターで消えるのですがデータが膨大なので手間がかかります。 簡単に消す方法はないでしょうか? ちなみに範囲をコピーして「形式を選択して貼り付け」「加算」で 一度に消えるようですが、データには文字も入っており、 これだと文字はコピーできないようです。 何か良い方法ありましたらご教示ください。<(_ _)> <例> |  A  |  B  |  C  |  D |  ------------------------------------------ 1|    |    |     |    | 2|    |    |     |    | 3|    |    |     |    | 4|    |    |     |    | 5|H7/2/6 | 赤川 | 1.56 | <25.0  | 6|     |     |     |    | 7|     |     |     |    | 8|H7/6/15| 貫川   | 2.56 | <35.6 | 9|     |     |     |    | 

  • エクセル、セルの入れ替えのショートカット

    Shift+ドラッグせずに、マウスに手をもっていかずに、セルの入替がキーボードだけでできないでしょうか?Ctrl+X、Ctrl+Vでの上書き貼り付けが、上書きではなく挿入、みたいになったらよいのですが。行ごと列ごとなら出来るのは知ってるんですが。マクロなら出来るでしょうか?マウスに手をもっていくのも、カーソルを細い境界線にイチイチ合わせるのもツライです。お知恵お貸しください

専門家に質問してみよう