エクセル2000での質問です。
入力用シートと印刷用シートを作りました。
入力シートは、数個の入力欄のセルのロックのチェックボックスを外してシート保護しました。
tabキーで次の入力セルに選択セルが移動するようになりました。
入力欄(セル)に文字や数値を入力後、enterを押すと、次の入力欄に移動するにはどうすればよいのでしょうか?
今は、enterを押すと、保護されている使用しない下のセルに移動します。
週個の入力欄(セルは)隣接しておらず、シート上にまばらに配置してあります。
教えてください。よろしくお願いします。
No.8
- 回答日時:
No.7補足
私も投稿してから気づいたので対処方法を考えていましたが、よい方法が見つかりませんでした。重ね重ね申し訳ありません。
なお、No.4の方の方法なら動きそうですがセル内容を更新したときだけに有効になります。単純にenter押下時は機能しませんでした。
No.3の方法に関して
セルアドレスを複数行に記述したい場合は
.Range("A1,A2,A3," _
& "A4," _
& "A5").Locked = False '←""内に移動したいセルを記入
となります。見やすく工夫する場合は
const MyRnage="A1,A2,A3," _
& "A4," _
& "A5"
.Range(MyRange).Locked = False
移動したいセル群に範囲名(例えば移動セル)をつけ、No.3を以下のように変える方法もあります。
Sub 入力限定()
With ActiveSheet
.Unprotect
.Cells.Locked = True
.Range("移動セル").Locked = False '←""内に移動したいセルを記入
.Protect
.EnableSelection = xlUnlockedCells
End With
End Sub
返事が遅くなり失礼しました。
後半の方式は良いですね。同じ結果を出す方法も色々あるんですね。
No.2の方法も便利ですね。アップグレードしようかなぁ。(なんか金で解決するようで情けないカモ)
ありがとうございました。
No.7
- 回答日時:
EXCEL2000では使えない回答をしてしまい申し訳ありません。
また、EXCEL2002での検証しかしておりませんがVBAでの方法を考えてみました。
・本方式では、セル/シートのロックは不要です。(してもらってもOK)
・移動先の順序を指定可能です。
・移動可能セル以外をマウスでクリックすると最初のセルに戻ります。
案 入力シートのシートモジュールとして以下を定義します。
VBEのプロジェクトエクスプローラ(通常は左側ウィンドウ)で目的の
シート名をダブルクリックして開く右側のウィンドウに書き込む。
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
' 移動先のセルアドレス(順序)
Const MyRange = "A1,A2,A3," _
& "B1,C1,D1," _
& "D2,C2,B2," _
& "B3,C3,D3"
MyRangARY = Split(MyRange, ",")
mycelladr = Target.Offset(-1, 0). _
Address(ColumnAbsolute:=False, RowAbsolute:=False)
n = 0
For i = 0 To UBound(MyRangARY)
If mycelladr = MyRangARY(i) Then
n = i + 1
Exit For
End If
Next
If n > UBound(MyRangARY) Then n = 0
Application.EnableEvents = False
Application.Goto Range(MyRangARY(n))
Application.EnableEvents = True
End Sub
念のため、マクロを止めたい時のために標準モジュールも準備します。
Sub マクロ無効化()
Application.EnableEvents = False
End Sub
Sub マクロ有効化()
Application.EnableEvents = True
End Sub
ありがとうございます。
ひとまず教えていただいたマクロを動作確認しました。
エンターで次のセルに移動しますが、矢印キーで一つ前のセルに戻ろうとすると、エラーになってしまいました。
これからじっくり勉強しながら解いていきます。本当にお世話様でした。
No.6
- 回答日時:
>何行かに分けて記述するのでしょうか?分けてみたのでうが分け方が違うらしく同じくエラーでした。
あれ?エラーでしたか?
一度、コピペでそのまま試してもらえませんか?
>・記述するセルの順番がそのまま移動する順番になるのでしょうか?
いえ、左上から右下の方向に移動します。
>・このマクロを使用する場合でも、入力セルのロック解除は必要ですよね?
不要です。それをマクロがやってくれます。
お礼が遅くなりスミマセン。
動作しますが、自分の作業用シートに応用するとエラーします。
現在、マクロを勉強中ですので、基本的な構文を理解していない私のせいでしょう。もう少し勉強を進めた上で参考にさせていただきます。ありがとうございました。
No.5
- 回答日時:
No.2補足回答
質問文にある「入力シートは、数個の入力欄のセルのロックのチェックボックスを外してシート保護しました。」のシートを保護する時の話です。
「ツール」→「保護」→「シートの保護」で“シートの保護”というダイアログが開くと思います。このダイアログには
1)「シートとロックされたセルの内容を保護する(C)」というチェックボックス
2)「シートの保護を解除するためのパスワード(R)」というテキストボックス
3)「このシートのすべてのユーザーに許可する操作(O)」というチェックボックス群
があると思います。
3)のチェックボックス群の一番上に「ロックされたセル範囲の選択」というチェックボックスがあるはずなんです。デフォルトではチェックが入っていますので、このチェックを外してください。そうするとロックされていないセルにしか移動しなくなります。
ただしEnter押下時に下方向に移動する設定の場合に次の移動先は現在のセルから下方向に探し、なければ次の列を探すことになります。不都合でしたら、ツール→オプションの編集タグのところにある入力後にセルを移動する方向で調整して下さい。
ありがとうございます。
職場にエクセル2002があるので確認しました。
「シートの保護ダイアログ」がエクセル2000と結構違います。。
入力セルの移動する順番を変則的にしたい場合でなければ、この方法は簡単で有効ですね。
(2002で設定して、2000で開いて同じ状態になるかなぁ?)
No.4
- 回答日時:
VBAなら
ワークシートのChangeイベントに下記を貼りつける。
Private Sub Worksheet_Change(ByVal Target As Range)
p = Array("$A$1", "$C$1", "$B$3")
q = Array("$C$1", "$B$3", "$A$1")
For i = 0 To UBound(p)
If Target.Address = p(i) Then
Range(q(i)).Select
Exit Sub
End If
Next i
End Sub
これで、A1->C1->B3->A1にENTERで動きます。
A1,C1,B3以外を保護してテストしてOKでした。
Pの()内に「From」、Qの()内に「To」を同じ位置にペアーで増やしていけば、相当数のセルの入力順序を制御
出来ます。
No.3
- 回答日時:
VBAは分かりますか?
以下のVBAを実行すれば,設定したセル以外は移動しません。
#1さんの方法でも可能ですが,矢印キーを押したり,マウスで別のセルをクリックすると元に戻ってしまいますが,このVBAを実行すれば,別のセルをマウスでクリックしても移動すらできませんリターンキー,TAGキーだけでなく矢印キーでも使用可能です。
なお,一度実行しておけばOKです。
Sub 入力限定()
With ActiveSheet
.Unprotect
.Cells.Locked = True
.Range("A1,A2,A3").Locked = False '←""内に移動したいセルを記入
.Protect
.EnableSelection = xlUnlockedCells
End With
End Sub
元へ戻すには
Sub 入力限定解除()
With ActiveSheet
.Unprotect
.Cells.Locked = True
.EnableSelection = xlNoRestrictions
End With
End Sub
この回答への補足
ありがとうございます。
・実際は、入力シートに入力するセルは52個もあります。
構文が分かりません。全部記入したらエラーになってしまいました。
何行かに分けて記述するのでしょうか?分けてみたのでうが分け方が違うらしく同じくエラーでした。
・記述するセルの順番がそのまま移動する順番になるのでしょうか?
・このマクロを使用する場合でも、入力セルのロック解除は必要ですよね?
スミマセン。お時間がありましたら教えて下さい。
No.1
- 回答日時:
セル範囲を選択しておくと、Enterで選択範囲内だけを移動する事はご存知ですか?
これを利用して、
・非保護セルをすべて選択
・挿入→名前→定義
・名前:入力セル(←任意)
・追加→閉じる
として、入力開始時に、数式バーの左の、セル位置が表示されているところで、「入力セル」を選んでおくと、ご希望の動作になります。
これが面倒であれば、VBAでマクロを書くしかないかも・・・
頑張ってくださいヽ(^。^)ノ
ありがとうございます。
エクセルに詳しい方のマクロを使わないテクニックですね。参考になります。 只今、勉強中です。がんばります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルでシート保護のかかり方の違いとセルの非保護の設定 3 2022/08/09 10:02
- Visual Basic(VBA) vbaでセルに入力したときに,その横にあるセルを保護し入力不可にするマクロを作りたいです。 2 2022/04/24 20:59
- Excel(エクセル) ユーザー定義について質問です。 2 2023/06/28 13:21
- Excel(エクセル) 条件に合った数値の合計を表示させたい関数と条件指定の方法 3 2023/05/13 16:07
- Excel(エクセル) エクセルで”入力シート”の文字書式の変更を”出力シート”で同じ文字書式で印刷したいです。VBA希望 4 2023/04/24 11:07
- Excel(エクセル) エクセルVBAでチェックボックスにチェックを入れる 1 2022/09/14 00:52
- Excel(エクセル) 【エクセル】文中に別シートのセルの内容を自動入力したい 6 2022/11/17 11:30
- Visual Basic(VBA) Changeイベントで複数セルへの貼り付けおよび値削除時に1個目のセルのみエラーになる 3 2022/12/21 09:07
- Excel(エクセル) 表内で、Enterキーで横→行の最後入力したら次の行の先頭に移動するマクロを作りたい 3 2022/05/01 21:19
- Excel(エクセル) エクセルについて質問です。 8 2022/05/31 16:00
このQ&Aを見た人はこんなQ&Aも見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
Excel VBA あるセルでENTERを押すと特定のセルへ移動したい
Excel(エクセル)
-
Enterキーで順番にセルの移動する。
Visual Basic(VBA)
-
エクセルでエンターを押すと隣のセルではなく指定したセルに!
Excel(エクセル)
-
-
4
エクセルでエンターを押すと任意のセルに移動は出来ますか?
その他(コンピューター・テクノロジー)
-
5
エクセルのチェックボックスを保護対象から外すには
Windows Vista・XP
-
6
値を入力後、自動的にアクティブセルが移動するマクロ
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelについて教えてください
-
【Excel】数字を3倍にし、なお...
-
エクセルVBA、別ブックへ転記す...
-
エクセル マクロ チェックボックス
-
Excel分析ツールでのポアソン回...
-
【マクロ】顧客番号にて一致さ...
-
【マクロ】名前を保存する際に...
-
エクセルのデーターが2か月前の...
-
UNIQUE関数が使えないバージョ...
-
エクセル共有したが、アクセス...
-
Excelでセルの値が同じか...
-
(マクロ)データをAブックからB...
-
Excel フィルターを掛けた状態...
-
エクセル②
-
エクセルを使っていて2024/5/15...
-
Googleスプレッドシートでファ...
-
エクセルで不等号記号(≠)が上に...
-
Win10でExcel VBA GetPhonetic...
-
Excelで縦軸の書式を0:00形式の...
-
エクセル:一覧表に存在する文...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel 2019 のピボットテーブル...
-
[関数得意な方]教えて下さい・...
-
Excelにてある膨大なデータを管...
-
[関数について]わかる方教えて...
-
Excel初心者です。 詳しい方、...
-
excelの不要な行の削除ができな...
-
エクセル関数に詳しい方教えて...
-
INDIRECTを使わず excelで複数...
-
[オートフィルタ]で抽出された...
-
エクセルの神よ、ご回答を! エ...
-
エクセル関数に詳しい方、教え...
-
各ページの1番上の表示について
-
Excelで写真のような表を作った...
-
エクセルで不等号記号(≠)が上に...
-
数学 Tan(θ)-1/Cos(θ)について...
-
Excel 2019 は、SPILL機能があ...
-
Excelで全角を半角にしたいので...
-
条件付き書式を教えてください
-
Excel フィルターを掛けた状態...
-
[オートフィルタ]の適用範囲の...
おすすめ情報