• ベストアンサー

入力があれば指定のセルに飛ぶようにしたい

今、C列とD列のみロックをはずして選択できるようになっています。 エクセルはオプションで下方向にも右方向にも設定できますが、どちらの設定の人でも、 C1セルに入力をしてEnterを押したらC3セルに飛び(C2ではありません、またC2セルは ロックしません)、C1セルに入力せずC1セル上でEnterを押したらD1セルに飛ぶように したいです。どのようなマクロのコードを組めば良いか途方にくれています。どのような コードか教えていただければ幸いです。。

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.2

VBE画面で,当該のブックのThisWorkbookシートに dim md private sub Workbook_Open() md = application.moveafterreturndirection application.moveafterreturndirection = xltoright end sub private sub Workbook_BeforeClose(cancel as boolean) on error resume next application.moveafterreturndirection = md end sub と登録 さらに当該のシートのシートモジュールに private sub Worksheet_Change(byval Target as excel.range)  if target.address = "$C$1" then range("C3").select end sub と登録します。 ブックを保存し,閉じて,開き直してから使います。 #補足 >C1セルに入力をしてEnterを押したらC3セルに飛び…たい いったい実際には「どこ番地で記入したらどこにジャンプしたい」のか,実際にヤリタイことに応じて自力で適切に応用してご利用ください。

kokorororo
質問者

お礼

ご回答ありがとうございます。 なんということでしょう・・ 今回私は例示として質問をさせていただいたいたのですが、これで他のセルを 入力して他にとばしたいときも上記のコードを使えばうまく応用できました。 完璧でした。ありがとうございますm(_ _)m

その他の回答 (1)

  • stiffels
  • ベストアンサー率34% (25/72)
回答No.1

Enterキーに反応する訳ではなく、値の変更でに反応するでも良いのであれば、 以下のようなVBAマクロで可能です。 Private Sub Worksheet_Change(ByVal Target As Range)   Select Case Target.Address     '入力したセルが C1 なら D1 をアクティブ化     Case "$C$1"       Range("D1").Activate   End Select End Sub

参考URL:
http://www.officepro.jp/excelvba/cell_select/index3.html
kokorororo
質問者

お礼

ご回答ありがとうございます。画像までつけていただいて感謝です。 しかし私の能力をもってしてはうまくいきませんでした;; しっかり勉強したいと思います;