アプリ版:「スタンプのみでお礼する」機能のリリースについて

VBAのユーザーフォームについて質問です。

ユーザーフォーム上のコマンドボタンをクリックすると、セルに値が入力されるようにしました。このとき、コマンドボタンをクリックすると、フォーカスがユーザーフォームに残っています。これを、コマンドボタンをクリックした後、自動で対象のセルにフォーカスすることはできるでしょうか?何かよい方法はあるでしょうか?


イメージは、
1 コマンドボタンクリック 
2セルに値がセットされる 
3 マウスを手放す
4 キーボードからセルの操作ができる状態(キーボードの矢印キーでセル移動ができる状態など)
のような状態にしたいです。

A 回答 (3件)

AppActivate Application.Captionを入れてみてはいかがでしょうか。


こちらで、以下のようにしたところ、期待通りに動いています。
対象セルをA1とします。

Private Sub CommandButton1_Click()
Range("A1").Value = TextBox1.Value
Range("A1").Select
AppActivate Application.Caption
End Sub


下記が参考URLになります。
https://answers.microsoft.com/ja-jp/msoffice/for …
https://qiita.com/ditflame/items/9ca1fb78de4dbba …
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
臨んだとおりの動きになりました!
AppActivate Application.Caption
がとても便利です!

お礼日時:2024/05/18 03:42

フォーカスについてはすでに回答されていますね



4 キーボードからセルの操作ができる状態(キーボードの矢印キーでセル移動ができる状態など)

これを実現するためには
UserForm オブジェクトを表示する時に
modal の設定をvbModelessにする
(VBEから実行ではなくUserForm オブジェクトを表示します)

UserForm1.Show vbModeless

参考
https://learn.microsoft.com/ja-jp/office/vba/lan …
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

お礼日時:2024/05/18 03:43

フォームのプロパティのShowModalをtrueに



Private Sub CommandButton1_Click()
Range("A1") = "asdf"

’エクセルのタイトルを指定
AppActivate "Book1"

Range("A1").Activate


End Sub
    • good
    • 0
この回答へのお礼

AppActivate
の利用が肝心なんですね!
回答ありがとうございます!

お礼日時:2024/05/18 03:43

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A