- ベストアンサー
特定のセルのみ移動の方向を変えることはできないしょうか
エクセル2007でExcelのオプションの詳細設定で、Enterを押した後に移動をする方向を決められるのは知っているのですが(今回の場合は縦に設定)、あるセルのみ横に移動するという設定はできないでしょうか。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
条件付きで可能です。 条件とは、あるセルの値を必ず変更する(変更しなくてとも同じ値を再入力する)ことです。 もし、変更せず(そのセルに何も入力せず)に、隣のセルに移動するのであれば、「TAB」キーで移動するほうが簡単です。 さて、自動的に移動(必ずそのセルに何らかの値を入力する)するには、VBAマクロを使います。VBAエディタを起動し(起動方法は別途お調べください。)、「Thisworkbook」というモジュールの、「WorkBook」オブジェクトの、「SheetChange」→「Workbook_SheetChange」プロシージャに、以下のコードをコピペしてください。 この場合目的のセル番地を「E7」としていますので、適宜変更してください。 'ここからコピー************** Option Explicit Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range) If Target = Range("E7") Then Range("E7").Offset(0, 1).Activate Else Exit Sub End If End Sub 'ここまでコピー************** わかりにくければ補足でお知らせください。
その他の回答 (2)
- hige_082
- ベストアンサー率50% (379/747)
最初から条件を書いとけばいいのに 後から条件を追加するのは、「あとだし、じゃんけん」などといわれ 他の掲示板でも、嫌われる行為です、気をつけたほうが良いですよ まあ、置いといて #1さん紹介のリンク先の回答をアレンジしてみました 対象のシートに下記のマクロをコピペ sheet2へセルの移動方向を矢印(↑、↓、←、→)で指定する 例 sheet2(セルの移動記録シート)の セルA1~A9へ ↓ を入力 セルA10~D10へ → を入力 セルE2~E10へ ↑ を入力 セルB1~E1へ ← を入力 対象シートへ戻り、セルA1を選択 値入力後でも、Enterのみでも、sheet2の矢印の通りにセル移動します '対象ワークシートモジュールへコピペ Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Selection.Count > 1 Then Exit Sub If Worksheets("sheet2").Range(Target.Address).Value = "" Then Application.MoveAfterReturnDirection = xlDown Exit Sub End If Select Case Worksheets("sheet2").Range(Target.Address).Value Case "↓" Application.MoveAfterReturnDirection = xlDown Case "→" Application.MoveAfterReturnDirection = xlToRight Case "↑" Application.MoveAfterReturnDirection = xlUp Case "←" Application.MoveAfterReturnDirection = xlToLeft Case Else Range(Worksheets("sheet2").Range(Target.Address).Value).Select End Select End Sub 空白は基本下移動に設定していますので、↓ は要らないのですが セル移動の設定の時分りにくいかなと思い残しています >自分が使用するわけではなく、多数の人間に配るものなので sheet2は設定後、表示しないに設定すれば、使用者に意識させなくてすむ こんな使い方も 例えば A1~F1、A2~D2、A5~F5へ順に入力したい場合 Sheet2へ A B C D E F G 1→→→→→→A2 2→→→→A5 3 4 5→→→→→→ と設定すれば出来ます 参考になれば
お礼
ご回答ありがとうございます。 けれど、勉強不足でご説明いただいた内容がほとんど理解することができません。 教えていただいたのに申し訳ありません。
- mitarashi
- ベストアンサー率59% (574/965)
下記URLのNo.2の方法はいかがでしょうか。基本的な機能しか使っていないので、2007でも動くと思いますが確認できませんので、あしからず。 http://okwave.jp/qa4136209.html
補足
ご連絡いただいた内容は今回の目的と多少異なるようです。。すみません。マクロは使用しないで、品名6桁が1桁=1つのセルとなっているのでその部分だけ横移動をしたいのですが、マクロを使わないと難しいようですね。 何か他にいい方法があれば、教えていただけると助かります。
補足
ご回答ありがとうございます。 質問の仕方が悪かったです。6桁の品名コードを1桁ずつ=1セルにあり それをエンターで横移動しながら入力をしてもらおうとしています。 (他の項目については縦移動がベスト。) 自分が使用するわけではなく、多数の人間に配るものなので、 使いやすいものを目指していたので、(自分ならTAB移動などで回避できるんですが・・・) 教えていただいたマクロでもできなのですが、保護をかけていることもあり、Changeマクロはうまく働かないかもしれません。