• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Sendkeyが上手く動作しない。)

Sendkeyが上手く動作しない

このQ&Aのポイント
  • Sendkeyが上手く動作しない。数式を値で貼り付けし、再計算させるためにマクロを組んだが、正常に動作しない。VBAのウィンドウがアクティブになるなどの問題が発生している。データシートをアクティベートしたり、セルを指定したりしても問題は解決しない。
  • マクロを使って数式の再計算を行おうとしているが、Sendkeyが正常に動作せず、VBAのウィンドウがアクティブになるなどの問題が発生している。データシートのアクティベートやセルの指定などを試しても問題は解決しない。
  • Sendkeyが上手く動作しない。数式を値で貼り付けし、再計算させるためにマクロを作成したが、VBAのウィンドウがアクティブになるなどの問題が発生している。データシートをアクティベートしたり、セルを指定したりしても問題は解決しない。

質問者が選んだベストアンサー

  • ベストアンサー
  • watabe007
  • ベストアンサー率62% (476/760)
回答No.1

With Range("C6:AR13")   .Value = .Value End With では

jim-shock
質問者

お礼

・・・こ、これは。 これはなんですか、太古の昔に失われた超文明が遺したオーパーツか何かですか?こんな素敵なマクロがあったなんて驚きです。 マクロを使わない場合は1列ずつ「区切り位置」を起動して即完了で数式の再計算をしていたのですが、マクロでも似たような、いえ範囲指定して一括でできるなんて.... ありがとうございました。助かりました。これで仕事が捗ります!

その他の回答 (1)

  • HohoPapa
  • ベストアンサー率65% (455/693)
回答No.2

SendKeysは非同期に動作してしまいます。 提示のコードは必要な回数分SendKeysが繰り返されたのち 後続の処理が行われているようにコーディングされてはありますが、 実際には、 OSに対してSendKeysが必要回数送り終われば 実際にキー操作が行われたかどうかを問わず 後続のコードの実行に制御が移ってしまいます。 そのため、 あたかも後続のコードが先に実行されているように見えてしまいます。 >VBAのウィンドウがアクティブになってそこで VBE側にsendkeysが送られている可能性もあります。 それはおそらく、 VBEの画面を閉じ、 スプレッドシート側の開発タブ、マクロから実行するとか シート上にボタンを配置して実行することで改善されるだろうと思います。 https://blog.goo.ne.jp/40vq77a80/e/d3be7689d47c674e2e39c7cd4c5ec2f2 この辺りがわかりやすいと思います。 >値で貼り付けた数式の再計算にいい方法 Application.Calculate このコードで再計算を指示できます。

jim-shock
質問者

お礼

はっはーん...なるほど...Sendkeysはそういう動きをするやつなんですね... 回答ありがとうございました。 とても分かりやすい解説、本当に助かりました。 参考URLも読ませていただきます。

関連するQ&A