前提・実現したいこと
ユーザーフォームを用いて電卓作成をしている
発生している問題・エラーメッセージ
電卓仕様で、税率を保存するのにセルを一つ使っているので、
開発中に別のワークブックを同時に開いてる場合や、
実際の環境で不具合が起きぬよう起動時にアクティブになるようにソースを記述しました。
別のワークブックを開きながら起動しても問題なく動作しているのですが、
なぜがデバックの際のstep実行する時のみ終了処理の際もともと開いていたワークブックがアクティブにとなってしまい、
結果的にバグとなっています。
リリース時に問題ないとはいえ気分が悪いです…
今回は終了時に税率の変更を検知して保存の是非を問うのですが、
セルを参照する際に必ず不一致となることから発見しました。
目的のワークブックをアクティブにしつつ戻らない方法はありますでしょうか。
該当のソースコード
問題個所のみ抜き出しました
適当なユーザーフォームに閉じるボタンを一つ張り付けてこの通りに実行しても確認できます。
VBA
1 2Private Sub UserForm_Initialize() 3 'アクティブに 4 Workbooks("電卓.xlsm").Activate 5 Debug.Print ActiveWorkbook.Name 6End Sub 7 8Private Sub btnClose_Click() 9 Debug.Print ActiveWorkbook.Name 10 Unload Me 11 Debug.Print ActiveWorkbook.Name 12End Sub 13 14Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer) 15 Debug.Print ActiveWorkbook.Name 16 'ここに保存確認と処理 17End Sub 18
試したこと
処理する都度ワークブック名を習得しましたが、一度目は「電卓.xlsm」となり問題ありませんが
二度目以降全てで元のワークブック名がイミディエイトウィンドウに表示されました
stepではなく通常の実行では問題なく全て「電卓.xlsm」がアクティブとなっています。
回答3件
あなたの回答
tips
プレビュー