いつもお世話になっております。
excelで下記のことをしたいと思います。やり方を教えていただけますでしょうか?
F3にenterを押すと、D3の値をF3に表示します。
同じくF4にenterを押すと、D4の値をF4に表示します。
これはF10 からF140まであります。
同じく、N列にenterを押すと、L列の値を表示します。
excelのVerは excel 2016
どうかよろしくお願いします。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答1件
0
ベストアンサー
こんにちは。
以下の手順で可能です。
-
- Enterキーの入力を感知
-
- 今選択されているセルを取得
-
- F10〜F140のいずれかであれば
-
- D列の値をF列に転記する
1. Enterキーの入力を感知
Application.Onkeyメソッドを使用することで、特定のキーが入力されたことを感知できます。
参考
注意点
Application.OnKeyは他のシートを開いていても反応してしまうため、
対象のシートが表示されたときにマクロを登録し、対象のシート以外が表示されたときにマクロを解除する…という手法がよく使われるようです。
シートモジュール(シート名はSheet1とします)
VBA
1'Sheet1が表示されたときに実行 2'EnterキーにOnKeyプロシージャを紐づける 3Public Sub Worksheet_Activate 4 Application.OnKey "~", "Sheet1.OnKey" 5End Sub 6 7'Sheet1以外が表示されたときに実行 8'EnterキーへのOnKeyプロシージャの紐づけを削除する 9Private Sub Worksheet_Deactivate 10 Application.OnKey "~" 11End Sub 12 13Private Sub OnKey 14 '色々な処理 15End Sub
ブックモジュール
VBA
1'Sheet1が表示されたときに実行されるプロシージャを、ブックを読込時にも無理やり実行する 2Private Sub Workbook_Open() 3 Call Sheets("Sheet1").Worksheet_Activate 4End Sub
2. 今選択されているセルを取得
ActiveCellプロパティでアクティブセル(現在選択されているセル)の情報を取得出来ます。
参考
3. F10〜F140のいずれかであれば
ActiveCell.Addressプロパティでアクティブセルの位置情報を取得出来ます。
ActiveCell.Address.Rowプロパティ…行番号を取得
今回の場合は、この値が10〜140の範囲にあれば良いですね。
If文を使って、条件式を書いてみて下さい。
ActiveCell.Address.Columnプロパティ…列番号を取得
今回の場合はF列で、Aが1、Bが2、…ときてFが6ですから、この値が6であれば良いですね。
これも同様に、If文を使って条件式を書いてみて下さい。
4. D列の値をF列に転記する
特定のセルの値は Range(v(行番号, 列番号)).Value
で取得出来ます。
例えばセルD10の値を取得したければ Range(v(4, 10)).Value
になりますが、今回は行番号が変動します。どう書けば良いでしょうか?考えてみて下さい。
セルの値の設定については、先程出てきたValueプロパティに代入すればOKです。
例えばF1の値を「hoge」にしたければ Range(v(6, 1)).Value = "hoge"
となります。
同様にこれもどう書けば良いか考えてみて下さい。
投稿2021/04/05 02:11
編集2021/04/05 08:20総合スコア313
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/04/05 04:37
2021/04/05 06:57
2021/04/05 07:48
2021/04/06 00:13
2021/04/06 01:31
2021/04/06 07:58 編集
2021/04/06 07:55
2021/04/06 07:57
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。