Excel VBA 質問スレッド №1556 (解決済)
入力したVBAコードが上手く動かないです。
投稿者 : VBA初心者 投稿日時 : 2023/09/07(Thu) 00:09:43 OS : Windows 11 EXCEL : Excel 2016
当方、VBA初心者で自分では解決できないため質問させて頂きます。
この度、リスト選択を設定した特定の範囲でセル入力(リストの中から選択)がされると、自動的にそのセルにロックがかかり、アクティブセルはそのまま動かない設定をしました。
セルに数字を直接入力すると、思った通りに動作してくれますが、リストから数字を選択するとアクティブセルが1つ右のセルへ移動してしまいます。
リストから数字を選択しても、アクティブセルが右に移動しないためには、どのようなコードを入力すれば良いのでしょうか?
解決策がございましたら、ご教示頂けますと幸いでございます。
宜しくお願い致します。
尚、入力したVBAコードは以下となります。
___________________________________________________
当方、VBA初心者で自分では解決できないため質問させて頂きます。
この度、リスト選択を設定した特定の範囲でセル入力(リストの中から選択)がされると、自動的にそのセルにロックがかかり、アクティブセルはそのまま動かない設定をしました。
セルに数字を直接入力すると、思った通りに動作してくれますが、リストから数字を選択するとアクティブセルが1つ右のセルへ移動してしまいます。
リストから数字を選択しても、アクティブセルが右に移動しないためには、どのようなコードを入力すれば良いのでしょうか?
解決策がございましたら、ご教示頂けますと幸いでございます。
宜しくお願い致します。
尚、入力したVBAコードは以下となります。
___________________________________________________
Private Sub Worksheet_Change(ByVal Target As Range) Dim xRg As Range On Error Resume Next Set xRg = Intersect(Range("B2:F16"), Target) If xRg Is Nothing Then Exit Sub Target.Worksheet.Unprotect If xRg.Value <> mStr Then xRg.Locked = True Target.Worksheet.Protect ActiveCell.Offset(0, 0).Select End Sub Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Not Intersect(Range("B2:F16"), Target) Is Nothing Then Set mRg = Target.Item(1) mStr = mRg.Value End If End Sub
スポンサーリンク
[返信 1] Re : 入力したVBAコードが上手く動かないです。
投稿者 : さんこう 投稿日時 : 2023/09/07(Thu) 08:04:54
>セルに数字を直接入力すると、思った通りに動作してくれますが、リストから数字を選択するとアクティブセルが1つ右のセルへ移動してしまいます。
ご提示のような動作にはなりませんでした(逆の動作でした)。
>アクティブセルはそのまま動かない設定をしました。
どれでしょうか? 見当たりませんが...
直接入力やリストから入力したときに、アクティブセルがどのように変化するか確認してみてはいかがでしょうか。
参考になれば(イミディエイトウインドウに、アクティブセルなどのアドレスを表示します)。
>セルに数字を直接入力すると、思った通りに動作してくれますが、リストから数字を選択するとアクティブセルが1つ右のセルへ移動してしまいます。
ご提示のような動作にはなりませんでした(逆の動作でした)。
>アクティブセルはそのまま動かない設定をしました。
どれでしょうか? 見当たりませんが...
直接入力やリストから入力したときに、アクティブセルがどのように変化するか確認してみてはいかがでしょうか。
参考になれば(イミディエイトウインドウに、アクティブセルなどのアドレスを表示します)。
Private Sub Worksheet_Change(ByVal Target As Range) Debug.Print Target.Address & " - " & ActiveCell.Address & " - "; ActiveCell.Offset(0, 0).Select Debug.Print ActiveCell.Address & " - "; Target.Select Debug.Print ActiveCell.Address End Sub
[返信 2] Re : 入力したVBAコードが上手く動かないです。
投稿者 : higeru 投稿日時 : 2023/09/07(Thu) 09:50:22
■[質問] VBA初心者さん(2023-09-07 00:09:43)の記事
> この度、リスト選択を設定した特定の範囲でセル入力(リストの中から選択)がされると、自動的にそのセルにロックがかかり、アクティブセルはそのまま動かない設定をしました。
質問に対する回答ではなくてすみませんが、ロックはかかりますか?(変数 mStr はどこでどう宣言されているのでしょう?)
■[質問] VBA初心者さん(2023-09-07 00:09:43)の記事
> この度、リスト選択を設定した特定の範囲でセル入力(リストの中から選択)がされると、自動的にそのセルにロックがかかり、アクティブセルはそのまま動かない設定をしました。
質問に対する回答ではなくてすみませんが、ロックはかかりますか?(変数 mStr はどこでどう宣言されているのでしょう?)
[返信 3] Re : 入力したVBAコードが上手く動かないです。
投稿者 : higeru 投稿日時 : 2023/09/07(Thu) 13:59:52
■[返信 2] higeruさん(2023-09-07 09:50:22)の記事
> ■[質問] VBA初心者さん(2023-09-07 00:09:43)の記事
> > この度、リスト選択を設定した特定の範囲でセル入力(リストの中から選択)がされると、自動的にそのセルにロックがかかり、アクティブセルはそのまま動かない設定をしました。
>
> 質問に対する回答ではなくてすみませんが、ロックはかかりますか?(変数 mStr はどこでどう宣言されているのでしょう?)
失礼しました。ボケてました。モジュールレベル変数の宣言が(ここには)書かれてないだけなんですね(たぶん)。
■[返信 2] higeruさん(2023-09-07 09:50:22)の記事
> ■[質問] VBA初心者さん(2023-09-07 00:09:43)の記事
> > この度、リスト選択を設定した特定の範囲でセル入力(リストの中から選択)がされると、自動的にそのセルにロックがかかり、アクティブセルはそのまま動かない設定をしました。
>
> 質問に対する回答ではなくてすみませんが、ロックはかかりますか?(変数 mStr はどこでどう宣言されているのでしょう?)
失礼しました。ボケてました。モジュールレベル変数の宣言が(ここには)書かれてないだけなんですね(たぶん)。
[返信 4] Re : 入力したVBAコードが上手く動かないです。
投稿者 : 真田幸村 投稿日時 : 2023/09/07(Thu) 21:28:57
本当にありがとうございました!!
本当にありがとうございました!!
[返信 5] Re : 入力したVBAコードが上手く動かないです。
投稿者 : higeru 投稿日時 : 2023/09/08(Fri) 08:20:38
■[返信 4] 真田幸村さん(2023-09-07 21:28:57)の記事
> 本当にありがとうございました!!
この掲示板は、質問投稿者自身でなくとも「解決済」にできてしまうということ??
■[返信 4] 真田幸村さん(2023-09-07 21:28:57)の記事
> 本当にありがとうございました!!
この掲示板は、質問投稿者自身でなくとも「解決済」にできてしまうということ??
当掲示板について
- Excel VBA に関する掲示板です。Excel VBA に関する質問や疑問、それに対する解決方法など気軽に投稿してください。
- 記事内ではHTMLのタグは使用できません。
- 記事は一度投稿すると修正できません。内容を訂正したい場合は返信で対応してください。
- Sub〜End Sub、Function〜End Function は自動的にプログラムコードとみなし、枠で囲って見やすくします。
- Excel VBA とは関係ないことや、他人が不快に思うようなことなど、管理人が適当でないと判断した記事は削除する場合があります。
スポンサーリンク
返信入力フォーム
( 処理日時 : 2023-10-02 00:44:34 )