プロが教える店舗&オフィスのセキュリティ対策術

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

ご教示お願いします。

A 回答 (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
    • good
    • 0
この回答へのお礼

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

お礼日時:2006/07/17 21:53

飛びたい順にCtrlキーを押しながらセル選択



セルが選択されている状態で名前ボックスに適当な名前入力

名前ボックスから定義した名前を選択したら設定しておいた
セルが選択されます。
セルに入力後エンターキーで次のセルに設定しておいた順に
ジャンプします。
    • good
    • 0

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

りますが…
    • good
    • 0
この回答へのお礼

ありがとうございます。

お礼日時:2006/07/17 14:52

↓のようなセルの移動をしたい場合、



A1→B1→C1→A2→B2→C2→A3→B3→C3

A1~C3をドラッグで選択しておいて、
入力後Tabキーを押すことによって
C列まで行ったらA列の一つ下の行に
移動します。

この回答への補足

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

補足日時:2006/07/17 14:45
    • good
    • 1

通常、セルの移動方向を右以外にしているが


、右に移動したいセルがある場合は、

Tabキー

で右に移動することが出来ます。

この回答への補足

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

補足日時:2006/07/17 14:47
    • good
    • 0

ブックを開いたらA1を選択、は↓でいけます。


シートの指定はなかったので考慮してません。

Private Sub Workbook_Open()
Range("A1").Select
End Sub

入力後に右のセルに移動するには↓でいけます。

ツール→オプション→編集→
入力後にセルを移動する方向を「右」

この回答への補足

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

補足日時:2006/07/17 14:49
    • good
    • 0
この回答へのお礼

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

お礼日時:2006/07/17 14:51

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!