• ベストアンサー

Excel、空白でもEnterを押せば任意の場所に移動できる?

matsu_junの回答

  • matsu_jun
  • ベストアンサー率55% (146/265)
回答No.4

matsu_junです。 私がやろうとしていた以上のことをKenKen_SPさんがお書きになりましたので、正直脱帽です。今更拙作を披露することができなくなってしまいました。(実はまだ構想だけで作っていなかったのですが) 私も「SelectionChange」で処理しようとしていたのですが、「ScrollArea」は思いつかなかったです。 というわけでKenKen_SPさまの回答に乗っかっちゃいまして、蛇足となりますがご利用のブックのプロジェクト「ThisWorkbook」に、以下のコードを挿入しておくと、開いている別のブックを編集したい時や、一度このブックを閉じた時に、Enterを押した時のカーソルの移動が下方向に戻ります。 Microsoft Visual Basic の左側、プロジェクトウィンドウから「ThisWorkbook」をダブルクリックして後、右側のエディタ部に書き込んでいただければ幸いです。 Private Sub Workbook_BeforeClose(Cancel As Boolean)   Application.MoveAfterReturnDirection = xlDown End Sub Private Sub Workbook_Deactivate()   Application.MoveAfterReturnDirection = xlDown End Sub また、KenKen_SPさんのコードを汚して申し訳ないですが、   'カーソルの移動方向を制御している場合はこんな感じ   If InArea(Target, Range("B4:E44")) Then     Application.MoveAfterReturnDirection = xlToRight   End If 上の部分を   If InArea(Target, Range("B4:E44")) Then     Application.MoveAfterReturnDirection = xlToRight   Else     Application.MoveAfterReturnDirection = xlDown   End If このように追記するくらいですか。これでB4:E44からカーソルが外れたら、Enterを押した時のカーソルの移動が下方向に戻ります。

kkm
質問者

お礼

matsu_junさん ありがとうございます。 Private Sub Workbook_BeforeClose(Cancel As Boolean)   Application.MoveAfterReturnDirection = xlDown End Sub は書いていたのですが「複数のブックを開くとちょっと困るかな?」と思ってはいました。 まだ始めたばかりで、そんな発想すら浮かばなかったし、もう少し簡単な処理で済むものと漠然したイメージだけだったんです。こんなになるとは予想外でした。 matsu_junさん、KenKen_SPさん、ありがとうございました。

関連するQ&A

  • Excelでenterを押した後任意のセルに移動

    Excel VBAの初心者です、宜しくお願いいたします。 VBAで集計表を作成しているのですがExcelのオプションから設定してシートの保護で入力可能なセルを選びVBAを実行するとシートは保護されていますとメッセージが出て使えません。 A1を入力後EnterでA3へ移動、次にEnterでA6へとセルを移動させたいのです、VBAでの構文はどの様に作ればよいのかご伝授頂きたく宜しくお願いいたします。 Excel 2002、3、7を使用しています。  

  • Excel VBA Enterキーによるセル移動

    ExcelVBAでEnterキーを押したら目的のセルに移動させたいのですがわかりません。例えばB4→C5→E7→B4と言った具合に移動させたいのですが。御教授下さい。よろしくお願いいたします。

  • エクセルのEnterキーでのセルの移動

    エクセルのEnterキーでセルを下に移動する時、同じファイルで同じように入力しているのに、Enterキー1回で下の行に移動する場合と、2回で移動する場合があるのです。いろいろやってみたのですが、どうしてなのかわからなくて悩んでいます。どなたかご存知の方いらしたら教えてください。

  • Excelで、Enterキーでセルの移動ができない

    Enterキーで下のセルに移動をすることができなくなり、 逆に、Altを押さなくてもセル内で改行がされるようになりました。 また、セルを選択しただけでは入力できず、 入力するためにはダブルクリックしなければならなくなりました。 これはこれで便利な時もありそうですが、やっぱり今はEnterでセル移動がしたいです… 特に設定を変えたつもりはないのですが、 元に戻す方法を教えてください。 Microsoft Excel 2003 を使っています。 宜しくお願いします。

  • 任意のセルの移動をENTERキーでしたい

    現在、エクセルで入力フォームを作成してます が、任意のセルへENTERキーで移動したい のです。 たとえば、B4にデータ入力後、ENTERで B6に移動する場合、下記のマクロを作ったの ですが、うまく移動しません。 どうしてでしょうか? ENTERキーがエクセルのフォームしか使用 できないのですか? Sub B4からB6へのセル移動() If keyascii = vbKeyReturn Then Worksheets("受付入力").Range("B6").Select End If End Sub

  • エンター・キーによる移動。

    お願いします!! エクセルでエンターを押すと「セルを下方向に移動」できますよね? それが、TABキーのように「横に移動」してしまうんです。 直し方を教えてください。 お願いします!

  • Enterキーで順番にセルの移動する。

    Excel2013 Enterキーを押すと隣りのセルに移動ではなく、次に入力したいセルにカーソルが移動するようにしたいです。 たとえば、 必要事項を入力する書類で、B2のセルに入力したら次はD5のセルに入力、次はA6に入力といった書類あり、Enterキーを押して次の入力セルに移動するようにしたい。また、書類の書式を崩されたくないのでシート保護して使いたいです。 Enterで進み、戻る時はUPキーか、↑キーなどで設定したいと考えてます。 どなたか、VBで教えてくださる方お願いします。

  • Excel で [Enter]キーを押した後のセルの移動方向を設定する

    Excel で [Enter]キーを押した後のセルの移動方向を設定する方法 Excel Mac 2008 を使用しています。 [Enter]キーを押した後のセルの移動方向を設定するには、 調べたところ「環境設定」→「編集」→「入力後セル移動」にて設定できるようですが、 デフォルトでは「方向」が「下」になっているものの、シートのレイアウトによって[Enter]キーを押すと「右」に移動してしまうことも多々あります。 これを解決する方法は無いのでしょうか? また、できればセルごとに「下」に移動するセルと「右」に移動させるという設定をしたいのですが、これは出来ないものでしょうか? ちなみに、マクロを使えばできると思うのですが、Excel Mac 2008 は 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

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

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