• ベストアンサー

入力後、エンターで次に入力するセルに移動したい。

データ入力後、エンターで次に入力するセルに移動する方法等を教えて下さい。 質問1 次のように移動したいと思っております。      F12 → I12 → L12 → M12 → N12 → O12 → P12 →      改行して F13へ 質問2      その時、I列は平仮名入力で、入力出来るようにしたい。 御指導の程、宜しくお願い致します。

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

  • ベストアンサー
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.4

No.3です。 >その時、I列は平仮名入力で、入力出来るようにしたい を見逃していました。 I列のみIMEをONにして、その他の列はIMEをOFFにすればよいのですよね? 前回のコードはすべて削除して↓のコードに変更してみてください。 Private Sub Worksheet_Change(ByVal Target As Range) 'この行から If Intersect(Target, Range("F:F,I:I,L:P")) Is Nothing Or Target.Count <> 1 Then Exit Sub With Target If .Row >= 12 Then Select Case .Column Case 6 .Offset(, 3).Select Case 9 .Offset(, 3).Select Case 16 .Offset(1, -10).Select Case Else .Offset(, 1).Select End Select If Selection.Column = 9 Then With Selection.Validation .Delete .Add Type:=xlValidateInputOnly, AlertStyle:=xlValidAlertStop, Operator _ :=xlBetween .IgnoreBlank = True .InCellDropdown = True .InputTitle = "" .ErrorTitle = "" .InputMessage = "" .ErrorMessage = "" .IMEMode = xlIMEModeOn .ShowInput = True .ShowError = True End With Else With Selection.Validation .Delete .Add Type:=xlValidateInputOnly, AlertStyle:=xlValidAlertStop, Operator _ :=xlBetween .IgnoreBlank = True .InCellDropdown = True .InputTitle = "" .ErrorTitle = "" .InputMessage = "" .ErrorMessage = "" .IMEMode = xlIMEModeOff .ShowInput = True .ShowError = True End With End If End If End With End Sub 'この行まで 何度も失礼しました。m(_ _)m

その他の回答 (4)

回答No.5

質問中のアルファベットに全角と半角が混在している時点で マクロは不可と判断させてもらいます。 (1)GHJK列を非表示にする。 (2)表示されているFILMNOP列の入力したい範囲をマウスのドラッグで選択する。 または (1)Ctrlキーを押しながらFILMNOP列の入力したい範囲をマウスのクリックとドラッグで選択する。 こうすれば選択範囲をエンターキーのみで移動することが出来ます。 また、入力に失敗したときはShift+Enterで戻ることが出来ます。 ただし、その作業をしているときは選択領域が解除されるマウスでのクリックは厳禁です。

oguno
質問者

お礼

ありがとうございました。

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.3

こんにちは! Excelだとして・・・ IMEのON・OFFはExcelの機能ではないと思います。 そこでデータの入力規則で対応してみました。 (この部分はマクロの記録をそのままコピー&ペーストしています。) 画面左下の操作したいSheet見出し上で右クリック → コードの表示 → VBE画面に ↓のコードをコピー&ペーストし、各列にデータを入力してみてください。 Private Sub Worksheet_Change(ByVal Target As Range) 'この行から Dim j As Long If Intersect(Target, Range("F:F,I:I,L:P")) Is Nothing Or Target.Count <> 1 Then Exit Sub With Target If .Row >= 12 Then Select Case .Column Case 6 .Offset(, 3).Select Case 9 .Offset(, 3).Select Case 16 .Offset(1, -10).Select Case Else .Offset(, 1).Select End Select With Selection.Validation .Delete .Add Type:=xlValidateInputOnly, AlertStyle:=xlValidAlertStop, Operator _ :=xlBetween .IgnoreBlank = True .InCellDropdown = True .InputTitle = "" .ErrorTitle = "" .InputMessage = "" .ErrorMessage = "" .IMEMode = xlIMEModeHiragana .ShowInput = True .ShowError = True End With End If End With End Sub 'この行まで ※ 12行目以降ご希望の動きになるようにしていますが、行数の指定がないので 最終行までの動きとなります。m(_ _)m

  • dezimac
  • ベストアンサー率56% (2365/4208)
回答No.2

Excelだったら 回答1 隣のセルへの移動はtabキーで行います。 F12(tab)→中略~P12(Enter) F13 と移動します。 回答2 入力規則で対応できます。 http://office.microsoft.com/ja-jp/excel-help/HP010072600.aspx 対象のセル(列)を選択して メニューバーの [データ]→[入力規則] 日本語入力タブを選択してオンにすればいいです。 I列では日本語入力をオン F列やL列は日本語入力をオフ(英数モード) にしておけばいいです。 入力する内容(整数とか日付け)が決まっているのなら、入力規則を活用すれば入力ミスは減らせます。

回答No.1

Excelかな?Excelとは書いてないしそうならカテ違いだけど一応Excelのことと仮定します。 >F12 → I12 → L12 → M12 → N12 → O12 → P12 → >改行して F13へ >その時、I列は平仮名入力で、入力出来るようにしたい 無理です。そんな個人のわがままに対応できるほどExcelはすごくありません。 まあ、マクロを入れたら不可能ではないと思うけど…わざわざそんなことするよりTab使ったほうがいいし。 横移動はデフォルトでは「Tab」キーでできます。 Tabで横移動後にEnterで下移動すると、次の行の「Tabで横移動し始めた最初の列」に移動します。

oguno
質問者

お礼

御回答ありがとうございました。 手が不自由ものですから悪しからず。

関連するQ&A