- 締切済み
Changeイベントの途中にユーザー定義関数が入る
Excel VBA勉強中のものです ○"A1"に数字を入力する →Worksheet_Changeイベント →"B1"~"B5"にそれぞれ結果が入る →"C1"にユーザー定義関数 =A(B5)がある みたいなことをしようとしているのですが、 やってみると、 ○"A1"に数字を入力する →Worksheet_Changeイベント →Worksheet_Changeイベントの"B1"(1つ目の結果)がでるところで →ユーザー定義関数 Function Aにとぶ →普通にEnd Function →そのまま終了(End subに行かない) となるのですが、Worksheet_Changeに戻って来ないものなのでしょうか? また、Worksheet_Changeの最初のところに Application.EnableEvents = Falseで他のイベントを発生させないように?はしているのですが、終わるまでユーザー定義関数を発生させない命令みたいなのってあるのでしょうか? 上には少なく書いてありますが、実際はたくさんのセルを使用しておりWorksheet_Changeだけだとかなりの長文になりそうで、後半はユーザー定義関数にしたのですが 根本的に考え方が間違っているのでしょうか? なにかいいアドバイスをお願いします。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- Wendy02
- ベストアンサー率57% (3570/6232)
こんにちは。 レスが付きませんね。 ただ、なんとなく、全体的にコードに無理があるような気がするのと、その質問では分かりにくいのです。ユーザー定義関数を貼り付けているのか、それとも、関数プロシージャにしているのか、その説明では分かりにくいです。コードを見るまではなんともいえません。 >→普通にEnd Function >→そのまま終了(End subに行かない) どうやら関数プロシージャのようですが、その内容に問題があるようです。 今の、そのご質問のままですと、ステップモードで調べてみるしかないとしか言えません。回答者側がどうしたよいとかとは言える状態ではありません。 ただ、イベントプロシージャに、あまり複雑なものを作ると、概して失敗することが多いということだけは言っておきます。
お礼
>その質問では分かりにくいのです 私もそう思います、正直ほとんどわかっておりません 理由は不明ですが何とか今は動いています もうちょっと勉強します ありがとうございました