
エクセル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(エクセル)
-
Excel VBA あるセルでENTERを押すと特定のセルへ移動したい
Excel(エクセル)
-
Enterキーで順番にセルの移動する。
Visual Basic(VBA)
-
-
4
セル保護してしない部分のみ、エンターキーを押して移動するようにする方法は?
Excel(エクセル)
-
5
値を入力後、自動的にアクティブセルが移動するマクロ
Excel(エクセル)
-
6
シート保護時のカーソル(セル)の移動について
Excel(エクセル)
-
7
エクセルVBAを使いセルを指定した順番に異動させ
Excel(エクセル)
-
8
テキストボックス(VBA)でEnterを押したときに作動するマクロ
Access(アクセス)
-
9
Enterキーでマクロを起動さす。
その他(ソフトウェア)
-
10
Excel VBAでブックを閉じる時、複数のブックが開いていると・・・。
Excel(エクセル)
-
11
Excelで保護していないセルにカーソルを飛ばしたい
Excel(エクセル)
-
12
エクセルでエンターを押すと任意のセルに移動は出来ますか?
その他(コンピューター・テクノロジー)
-
13
エクセル TABキーの動きをマクロで
Excel(エクセル)
-
14
あるセルに特定の文字列を打つと、他のセルに決められた文字が自動入力するように
Excel(エクセル)
-
15
EXCELマクロ 保護されているシートのダイアログを表示させない方法
Visual Basic(VBA)
-
16
入力するセルの順番を自動選択(セルの移行)
Excel(エクセル)
-
17
エクセルのVBA 特定のセルでエンターキーでマクロ実行
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
9月17日でサービス終了らし...
-
エクセル ドロップダウンリスト...
-
特定のセルだけ結果がおかしい...
-
エクセルのdatedif関数を使って...
-
エクセルの循環参照、?
-
【関数】同じ関数なのに、エラ...
-
【マクロ】列を折りたたみ非表...
-
【マクロ】【配列】3つのシー...
-
【マクロ】アクティブセルの時...
-
iPhoneのExcelアプリで、別のシ...
-
【マクロ】EXCELで読込したCSV...
-
【条件付き書式】シートの中で...
-
【マクロ】3行に上から下に並...
-
【マクロ】オートフィルターの...
-
【マクロ】A列にある、日付(本...
-
vba テキストボックスとリフト...
-
エクセル
-
【エクセル】期限アラートについて
-
Excel 複数のセルが一致すると...
-
【マクロ】WEBシステムから保存...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelファイルを開くと私だけVA...
-
エクセルについてどう関数を使...
-
マクロ・VBAで、当該ファイルの...
-
エクセルのセルに画像は埋め込...
-
エクセルで、一部のセルだけ固...
-
【マクロ、画像あり】A表かB表...
-
エクセルでカウントする
-
【マクロ】コードを少しでも、...
-
VBA_日時のソート
-
エクセルで教えてください。 例...
-
エクセル 月間シフト表で曜日ご...
-
セルの左に余白を付ける
-
エクセル
-
エクセルについて教えてください
-
2枚のエクセル表で数字をマッチ...
-
ExcelのIF関数との組み合わせの...
-
エクセルのファイルのコピーを...
-
エクセルで二つのブックの違い...
-
空白処理を空白に
-
Excelのチェックボックスについ...
おすすめ情報