エクセルで簡単なタスク管理表を作っています。
A列に日付が入るようになっており、自動で日付順にタスクが並び変わるようにしています。
↓
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 Then
Cells.Select
Selection.Sort Key1:=Range("A2"), Header:=xlYes
End If
End Sub
別の質問で、上記マクロを見つけてこれを使用しているのですが、これだとVBA実行後にセルが全選択された状態になります。
VBAの知識が全くなく、自分なりに調べて見たのですがうまく行かずこちらで質問するに至りました…( ; ; )
上のマクロのまま、VBA実行後に元々選択していたセルに戻るにはどうしたらいいのでしょうか。
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
こんにちは
>元々選択していたセルに戻るにはどうしたらいいのでしょうか。
「元々選択していたセル」の解釈が2通りできます。
ご提示のコードはChangeイベントですが、それが発生する状況でのセル選択は
・通常入力でEnterキー等を押した時
→ 選択セルは次のセルに移動
・ペーストなどでセル(又はセル範囲)に値を入力した時
→ 選択セルはペーストしたセル範囲のまま(=移動しない)
の2種類があります。
1)選択位置をイベントが発生した状態(=Enterで移動後)にしたいのなら
Selectで選択範囲を移動しなければ良いです。
>Cells.Select
を削除して
>Selection.Sort Key1:=Range("A2"), Header:=xlYes
の部分を
Cells.Sort Key1:=Range("A2"), Header:=xlYes
とすれば、シート上の選択範囲は影響を受かないので、そのままとなります。
2)処理対象のセル(又はセル範囲)が選択された状態にしたいのなら
No3様の回答にあるように
Target.Select
としておけば良いでしょう。
(Enter入力等の場合には、選択位置が戻った状態になります)
確かに2パターン解釈できるなと、投稿後に気づきました(*´-`)
本日実際に事務員間で使用してみて、2つのパターン好きな方を使えたのでとてもありがたかったです。
ありがとうございました!
No.3
- 回答日時:
Target.Select ' この行追加
End If
End Sub
で宜しいのでは。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルのイベントプロシージャーでF列の最終行のセルの入力をトリガーにしたいのですが 1 2022/10/14 09:36
- Excel(エクセル) エクセルの自動更新のタイミングについて 1 2022/07/20 16:12
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- Excel(エクセル) エクセル VBA実行中のApplication.ScreenUpdatingについて 3 2023/07/13 21:06
- Visual Basic(VBA) エクセル VBAで複数セル選択時エラーになる問題 3 2022/10/04 02:40
- Visual Basic(VBA) ExcelVBAコードについて 5 2023/10/28 16:54
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 2 2022/05/26 17:19
- Visual Basic(VBA) VBAコードを張り付け後のエクセルの進め方 2 2023/02/07 18:24
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/02/02 09:25
- Visual Basic(VBA) エクセルのマクロを教えてください 4 2022/02/04 08:05
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教えるわが家の防犯対策術!
ホームセキュリティのプロが、家庭の防犯対策を真剣に考える 2組のご夫婦へ実際の防犯対策術をご紹介!どうすれば家と家族を守れるのかを教えます!
-
Cellsのコードが打てません
Visual Basic(VBA)
-
エクセルVBAでデータ転記
Visual Basic(VBA)
-
VBEを開くのにコマンド名が「Visual Basic」な理由はなぜ?
Visual Basic(VBA)
-
-
4
エクセルのマクロについて教えてください。
Visual Basic(VBA)
-
5
Excel VBA マクロ シート名を変えずにA列にあるセル名の名前でファイルの分割をしたいです
Visual Basic(VBA)
-
6
VBA 二つのブックをうまく扱えないでいます
Visual Basic(VBA)
-
7
ExcelのVBAのことで質問です。 以下のコードを入れ、ボタンを押せば作動させると写真のように画面
Visual Basic(VBA)
-
8
excelのVBAについて、以下のコードに追加をお願いいたします。
Visual Basic(VBA)
-
9
マクロについて教えてください。 下記のマクロは以前教えて頂いたマクロです。 マクロを実行すると 指定
Visual Basic(VBA)
-
10
excelのVBAで画像の動作をさせるため、プログラムを教えてください。
Visual Basic(VBA)
-
11
VBA
Visual Basic(VBA)
-
12
近似した文字列を置換するエクセル関数またはVBAについて
Visual Basic(VBA)
-
13
VBAで特定のシート以外のシート名を変更したい
Visual Basic(VBA)
-
14
引数に数値、文字列の混在
Visual Basic(VBA)
-
15
Excel VBA マクロ あるフォルダー内の複数のファイルを統合したいです
Visual Basic(VBA)
-
16
エクセル VBAでの転記の方法について
Visual Basic(VBA)
-
17
VBAに関して
Visual Basic(VBA)
-
18
ユーザーフォームに別シートからデータを反映させたい。
Visual Basic(VBA)
-
19
Excel VBAでの数値の計算についておしえてください
Visual Basic(VBA)
-
20
Excel VBA ダブルクリックで入力 複数まとめる
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ExcelVBAを使って、値...
-
特定のセルが空白だったら、そ...
-
EXCELで変数をペーストしたい
-
Excel VBA、 別ブックの最終行...
-
i=cells(Rows.Count, 1)とi=cel...
-
Excelで指定した日付から過去の...
-
TODAY()で設定したセルの日付...
-
【Excel】指定したセルの名前で...
-
screenupdatingが機能しなくて...
-
エクセルvba:自己セルの情報取...
-
【Excel VBA】指定行以降をクリ...
-
Excel VBAで比較して数値があっ...
-
連続する複数のセル値がすべて0...
-
DataGridViewの各セル幅を自由...
-
実行時エラー438 オブジェクト...
-
Excelのハイパーリンクにマクロ...
-
3桁または4桁の数値を時刻に...
-
特定の文字を条件に行挿入とそ...
-
VBからEXCELのセルの値を取得す...
-
クリックしたセルに色を付けるV...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ExcelVBAを使って、値...
-
特定のセルが空白だったら、そ...
-
i=cells(Rows.Count, 1)とi=cel...
-
【Excel VBA】指定行以降をクリ...
-
Excelで指定した日付から過去の...
-
【Excel】指定したセルの名前で...
-
Excel vbaで特定の文字以外が入...
-
特定の文字を条件に行挿入とそ...
-
TODAY()で設定したセルの日付...
-
screenupdatingが機能しなくて...
-
Excelのプルダウンで2列分の情...
-
EXCELで変数をペーストしたい
-
連続する複数のセル値がすべて0...
-
Excel VBA、 別ブックの最終行...
-
VBAを使用した時間管理
-
エクセルVBAでコピーして順...
-
セル色なしの行一括削除
-
【EXCEL VBA】Range("A:A").Fi...
-
VBA コピーして次の値まで貼り...
-
VBA初心者です。結合セルを保持...
おすすめ情報