• ベストアンサー

エクセル : 指定位置へジャンプさせるには?

ファイルを開いた時に必ず、A1 にカーソルを置きたいのですが 可能でしょうか?  また A1 へ数値を入力後、B1 へ、B1 入力後、C1 へジャンプ させたいのですがどのようにしたら良いでしょうか? ご教示お願いします。

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

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.6

単に、Changeイベントでもよいのですが、実際に、数値を入れるとか入れないとか、というのは、ユーザーの問題ですから、以下のマクロは、「Enter」に反応するように作られています。 つまり、入れない場合でも、Enterを入れれば、セルの移動が出来るようにしてありますが、結構、大掛かりなものになってしまいます。 別に、細かい設定を説明したりするつもりがありませんので、よろしかったら、お試しください。 標準モジュールの一番上に、ユーザー設定の場所がありますから、そこに書き込んでくれれば、ご希望どおりになりますが、キーは、必ず、「,(カンマ)」で区切らないといけません。 指定以外の場所にセルポインタがある場合は、Enter を入れれば、最初の場所(例A1)に戻ります。 '-------------------------------------------------- 'ThisWorkbookへ Option Explicit Private Sub Workbook_Activate() Dim myKey As String On Error Resume Next   myKey = Mid$(MYKEYS, 1, InStr(MYKEYS, ",") - 1)  Application.Goto Worksheets(MYSHEET).Range(myKey)  '別のブックから、このブックへ来た場合  Call SetKeys End Sub Private Sub Workbook_Deactivate()  '別のブックを作業している時   Call SetOffKeys End Sub Private Sub Workbook_Open() Dim myKey As String  '開けたとき  On Error Resume Next  myKey = Mid$(MYKEYS, 1, InStr(MYKEYS, ",") - 1)  Application.Goto Worksheets(MYSHEET).Range(myKey)    Call SetKeys End Sub Private Sub Workbook_BeforeClose(Cancel As Boolean)  '閉じる前  Call SetOffKeys End Sub '-------------------------------------------------- '================================================= '標準モジュール '------------------------------------------------- Option Explicit '=================================== 'キーの設定(ユーザー設定) Public Const MYKEYS As String = "A1,A5,C1" Public Const MYSHEET As String = "Sheet1" '=================================== Private myKeyAr As Variant 'キーを格納する配列変数 Sub SetKeys()   '設定用   Application.OnKey "~", "ReturnDirectrion2Cell"   Application.OnKey "{Enter}", "ReturnDirectrion2Cell" End Sub Sub SetOffKeys()  '解除用  Application.OnKey "~"  Application.OnKey "{Enter}" End Sub Private Sub ReturnDirectrion2Cell()  Dim i As Long  Dim myAdd As String  Dim NextAdd As String  '変数の確保をチェック  If IsArray(myKeyAr) = False Then   myKeyAr = Split(MYKEYS, ",")  End If  '除外条件  If ActiveSheet.Name <> MYSHEET Then    ActiveCell.Offset(1).Select    Exit Sub  End If    myAdd = ActiveCell.Address(0, 0)  For i = LBound(myKeyAr) To UBound(myKeyAr)   If StrComp(myKeyAr(i), myAdd) = 0 Then    If i < UBound(myKeyAr) Then     NextAdd = myKeyAr(i + 1)     Exit For    Else     NextAdd = myKeyAr(0)    End If   End If  Next i  If NextAdd <> "" Then   Range(NextAdd).Select  Else   Range(myKeyAr(0)).Select  End If End Sub

peacemaker4823
質問者

お礼

詳しくありがとうございます。 試してみます。

その他の回答 (5)

  • marbin
  • ベストアンサー率27% (636/2290)
回答No.5

飛びたい順にCtrlキーを押しながらセル選択 ↓ セルが選択されている状態で名前ボックスに適当な名前入力 名前ボックスから定義した名前を選択したら設定しておいた セルが選択されます。 セルに入力後エンターキーで次のセルに設定しておいた順に ジャンプします。

noname#204879
noname#204879
回答No.4

ファイルを保存するときは必ずセル「A1 にカーソルを置」いておけば、「ファイルを開いた時に必ず、A1 にカーソルを置」いた状態になりますが…

peacemaker4823
質問者

お礼

ありがとうございます。

  • marbin
  • ベストアンサー率27% (636/2290)
回答No.3

↓のようなセルの移動をしたい場合、 A1→B1→C1→A2→B2→C2→A3→B3→C3 A1~C3をドラッグで選択しておいて、 入力後Tabキーを押すことによって C列まで行ったらA列の一つ下の行に 移動します。

peacemaker4823
質問者

補足

A1 → A5 → C1 といった全く離れた位置へ飛びたいと言う事なんです。 そういう意味でジャンプと書いたつもりだったのですがうまく書けなくてすいません。

  • marbin
  • ベストアンサー率27% (636/2290)
回答No.2

通常、セルの移動方向を右以外にしているが 、右に移動したいセルがある場合は、 Tabキー で右に移動することが出来ます。

peacemaker4823
質問者

補足

A1 → A5 → C1 といった全く離れた位置へ飛びたいと言う事なんです。 そういう意味でジャンプと書いたつもりだったのですがうまく書けなくてすいません。

  • marbin
  • ベストアンサー率27% (636/2290)
回答No.1

ブックを開いたらA1を選択、は↓でいけます。 シートの指定はなかったので考慮してません。 Private Sub Workbook_Open() Range("A1").Select End Sub 入力後に右のセルに移動するには↓でいけます。 ツール→オプション→編集→ 入力後にセルを移動する方向を「右」

peacemaker4823
質問者

お礼

ありがとうございます。 これは、どこへ入力すればよろしいでしょうか?

peacemaker4823
質問者

補足

A1 → A5 → C1 といった全く離れた位置へ飛びたいと言う事なんです。 そういう意味でジャンプと書いたつもりだったのですがうまく書けなくてすいません。