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

excel 画面上でフォームコントロールにマクロを登録し実行すると問題なく実行できるのですが、debugやステップインで一行ずつ進める(F8キーで)と、制御がVBA画面にいってしまい(?)、例えば、
   Sendkeys "{F2}"
の行でオブジェクトブラウザーが立ち上がってしまいます。
もともとVBAの画面で表示タブの中でF2キーがオブジェクトブラウザーの立上げなので、当たり前といえば当たり前なのですが・・・

要するに、
F8キーで一行ずつ進めても(VBA側の画面上ではなく)Excel画面上で、マクロが実行されるようにするには、どうすればよいのでしょうか?

基本的なことも知らず、ただ必要に迫られて悪戦苦闘しています。
どなたかお助け下さいませ!

質問者からの補足コメント

  • つらい・・・

    回答文を引用させていただきます。

    >>普通は、その様な事はしないと思います
    SUB xxx() ~ End Sub までの動作チェック時にdebugでF8にて一行ごと動作確認するなんて、「普通はその様な事はしない」のですね・・

    マクロ実行中にエラーが出ればその時点でdebugに入れてエラー箇所がわかると思いますが、
    (ここからやりたい事です)エラーは出ないが意図した動きと違う場合に、一行ごと実行させて、どの行で意図しない動きとなるのか確認したい時など、頭から一行ずつ実行して動きを見るのかなと思っていましたが・・

    >>動作チェックをしているという事?
    → もちろん動作チェックが目的です。

    No.1の回答に寄せられた補足コメントです。 補足日時:2022/02/01 20:57

A 回答 (4件)

こんばんは



1行ずつ実行するかどうかは、好みなのでどちらでも良いと思いますが、ご提示の Sendkeys に関しては、状態依存の結果になるので、デバッグモードで実行する限りはエディター上でキーを押した動作になってしまうのは避けようがないでしょう。

一方で、1行ずつ実行するような必要があるのは、相当に詳細にチェックしたい部分に限るのではないでしょうか?
普通なら、ある程度のところは流して、確認したい部分にブレークポイントを設定しておいたり、他の方の回答にあるように、Debug.Print などで値を確認するなどではないかと思われます。

Sendkeys の前までの処理内容が既に確認済みであるのなら、次はその後にブレークポイントを設定してそこまでは流してから、後の部分を(1行ずつでもお好みに)チェックなされば宜しそうに思われます。
    • good
    • 0
この回答へのお礼

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

また回答文を引用させていただきます。

>>Sendkeys に関しては、状態依存の結果になるので、デバッグモードで実行する限りはエディター上でキーを押した動作になってしまうのは避けようがないでしょう。

そうなんですね!。「状態依存の結果なので避けようがない」のですね。ようやく腑に落ちました。ありがとうございます。

ブレークポイントの設定やdebug.printの使い方など学習していきます。

お礼日時:2022/02/01 21:49

No.1の者です。



>エラーは出ないが意図した動きと違う場合に、一行ごと実行させて、どの行で意図しない動きとなるのか確認したい時など、頭から一行ずつ実行して動きを見るのかなと思っていましたが・・
→失礼しました。 プログラムコードは、かなり長いのでしょうか?
私の場合は、Debug.Printや、Msgboxで結果を表示したりして、どこまでが
正常で、どこからおかしいかを切り分けながら、原因を特定しますね。
例えば、処理の半分位で、結果を表示して、それが正常なら、後半がNG。
その後半を、また、幾つか結果を表示させて、原因を特定しますね。

あと、Sendkeys "{F2}" とかは、他のフォーカスが移っていると、全く
違う動きや誤動作の可能性が高いので、できれば、他の方法が良いかと。
    • good
    • 0
この回答へのお礼

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

また回答文を引用させていただきます。

>>私の場合は、Debug.Printや、Msgboxで結果を表示したりして、どこまでが正常で、どこからおかしいかを切り分けながら、原因を特定しますね。
例えば、処理の半分位で、結果を表示して、それが正常なら、後半がNG。
その後半を、また、幾つか結果を表示させて、原因を特定しますね。

なるほど!
Debug.printなどで大きく切り分けて、原因を絞り込んでいくわけですね。大変参考になります。
ありがとうございます!。

お礼日時:2022/02/01 22:02

マルチすんな

    • good
    • 1

こんばんは。



Excel上で、マクロのコードを1行ずつ実行する事(意味)って、
何でしょうか? 普通は、その様な事はしないと思います。
動作チェックをしているという事? もう少しやりたい事を記載されると、
他の方もアドバイスができるかも知れませんが。
この回答への補足あり
    • good
    • 0

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

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


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