[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『入力後指定先のセルへ移動するマクロ』(yosi)
マクロによるセルに入力実行後指定先のセルへ移動し次の入力待ちの方法
みやほりんが 未解決ログ解消を目的に 2006/03/02 20:30 ごろ、投稿しました。 トピ主の[yosi]さんの投稿は2002/08/31 22:19:57 でした。 任意のセルへの移動をマクロで試作してみました。汎用品を目指しました。 自動セル移動を行いたいシートとは別に移動セル設定用のシートを用意します。 A B 1 設定 2 移動セル A2,A4,B2,C2,E2,A10,A12,B10,C10,E10 3 区切文字 , 区切り文字は任意の文字列一文字、移動セルはセルアドレスを区切り文字で区切って 記入します。 自動セル移動を行いたいシートの見出しを右クリック、「コードの表示」を選択して VisualBasicEditor起動、コードウィンドウへ下記を貼り付け。 Const Ctr As String = "設定": Rem 設定を記入するシート名 Const Lst As String = "B2": Rem 移動セルを記入するセル Const Dlmt As String = "B3": Rem 記入文字列のデリミタ(区切り文字)を設定するセル Dim MyNum As Long Dim LstNum As Long Dim MyAdr() As String, StrAdr As String Private Sub Worksheet_Activate() Rem 【シートアクティブ時に設定用シートを元に移動順番設定】 Rem 変数初期化、移動セルの先頭セルを選択 MyAdr() = Split(Worksheets(Ctr).Range(Lst).Value, Worksheets(Ctr).Range(Dlmt).Value) MyNum = 0 StrAdr = "" LstNum = UBound(MyAdr()) On Error Resume Next With Me Rem 移動セル設定のチェック 不適当なものはEnd Withまでで除外。 For i = 0 To LstNum With .Range(MyAdr(i)) If Err.Number = 1004 Then Rem セルアドレスと認識できないときのエラー処理 MsgBox "セルアドレス[ " & MyAdr(i) & " ]はアドレスとして不正です" & Chr(13) & _ "選択セルから除外します。必要ならば設定を修正してください。" Err.Clear ElseIf .Count > 2 Then Rem 複数セル範囲と認識されるときの処理 MsgBox "セルアドレス[ " & MyAdr(i) & " ]は複数セルのため不正です" & Chr(13) & _ "選択セルから除外します。必要ならば設定を修正してください。" Else StrAdr = StrAdr & MyAdr(i) & " " End If End With Next i End With Rem 配列再設定 StrAdr = Left(StrAdr, Len(StrAdr) - 1) MyAdr() = Split(StrAdr) LstNum = UBound(MyAdr()) With Me Rem 入力セルのみロック解除でシート保護、非ロックセル選択抑制 .Unprotect .Cells.Locked = True For i = 0 To LstNum With .Range(MyAdr(i)) .Locked = False End With Next i .Protect DrawingObjects:=True, Contents:=True, Scenarios:=True .EnableSelection = xlUnlockedCells End With Application.EnableEvents = False Rem 選択許可第一セル選択 Me.Range(MyAdr(MyNum)).Select Application.EnableEvents = True End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range) Rem 移動セルを配列変数MyAdr()で既定 If Target.Count > 1 Then MsgBox "複数セル選択不可" Else If MyNum = LstNum Then MyNum = 0 Else MyNum = MyNum + 1 End If End If Application.EnableEvents = False Rem 変数MyNumで規定されるセルを選択 Me.Range(MyAdr(MyNum)).Select Application.EnableEvents = True End Sub エラー処理まで考えたら思ったより行数が多くなった・・・ 【過去ログ】検索ワード[セル 入力後 移動 Enter]より抜粋。 [[20020510221453]] 『セルに入力後指定したセルに移動できますか。』(hiro2) [[20020705134004]] 『セルの保護を解除した部分にのみセルが移動』(こつこ) [[20030124155339]] 『リターンキーによるセルの移動を替えたい』(さちの) [[20030430220750]] 『入力後、特定のセルに移動するようにしたい』(トム) [[20031116181400]] 『enterを押下するとどこに移行するか』(はげ) [[20031217141206]] 『アクティブセルの移動』(たか) [[20040127170335]] 『入力後のセルへの移動を自分で決める方法』(さんきち) [[20040214114536]] 『入力セル範囲指定』(トシ) [[20040524175457]] 『EnterやTabで指定したセルだけに移動する方法』(ki) [[20040611091533]] 『文字入力後、Enterを押して違うセルに飛ぶ方法』(すがやっち) [[20040802161638]] 『エンターキーでセルの移動』(ひで) [[20040818220406]] 『A1に入力しエンターを押すと、次はB1になって』(山口) [[20040917090048]] 『ENTERで次の行へ行くように出来ますか』(みず) [[20041116142947]] 『アクティブセルの位置』(健康診断) [[20050109161249]] 『数字入力を左のセルからにしたい』(初心者) [[20050525141216]] 『自動改行したいです。』(秋刀魚) [[20050824110349]] 『入力後のアクティブセルの移動位置を変更したい』(B-DYAWAN) [[20050901180323]] 『リターン情報って?』(ちょき) [[20050920094816]] 『ENTERでセル右移動』(ひろし) [[20050930171327]] 『セルの進行方向の変更』(まめ) [[20051212143001]] 『セルの移動』(ど素人) [[20060224112842]] 『入力後のセルの移動』(ピョン) (みやほりん)(-_∂)b
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.