見出し画像

競馬予想ソフト 2024_1006【Update】

こんにちは。slash_slashです。
(続き)
その処理っていうのが、コードの処理ではなく、Excelシートに埋め込まれている自作関数を読みこむ処理。該当の関数は、シート上部のセルに入力されると、下段のセルに自動的に計算され表示されるというモノ。ただ、その自作関数が入ったセルはシート上に600〜800個ぐらい。そのセルを一つ一つ処理をしている感じで異常に時間が掛かっている様子。
なんとなく直ぐに頭に浮かんだExcelが落ちる原因は、その処理に時間が掛かってしまうために、Excel自体が処理を待ちきれず、次の処理に行く時に前処理が終わっていなくて、Excelが落ちる感じの事象と思われる。

何故そういう風に直ぐ頭に浮かんだのには理由があります。
数年前に、会社で当時所属していた職場の上司から、「ある属人化した人が作ったExcelマクロファイルを32bitから64bitに対応させてほしい」、という依頼がありました。その属人化した人の作ったマクロは全般的にイケてないCodeです。イケていないっていう意味は、全般的に融通が全く利かず、シンプルでないCodeなのです。それまでに何度かその人が作ったマクロを修正したことがあるのですが、意味の無い処理が多くて、処理の意味を理解して修正するのに時間が掛かってしまっていました。
『もっとシンプルなCodeやったら修正しやすいのに』って感じですね。
僕は触るのが嫌でしたが、上司の依頼なので仕方なく修正しました。
それにその修正はその属人化した人には内緒でしてほしいという。
その当時にはすでに、同じ職場から離れて違う課に異動していましたが、違う課に異動しているのにも関わらず、ずっとその人の影響力が強くて。。

Excelマクロを修正している時に、今回と同じようにExcelが落ちるという事象がありました。今回とは全く違う処理の部分でしたが、事象としては前の処理が終わっていないのに、次の処理へいってしまったのでExcelが落ちた感じでした。
対策としては、前の処理と次の処理の間にディレイ処理(待ち時間)を入れて、時間稼ぎをすれば落ちなくなりました。
その時は、自分の日々の仕事の合間に修正していたこともあって、1週間ぐらいは、Excelが落ちる原因と場所を特定するのに掛かっていました。

話は少しそれてしまいましたが、Excelシートのセルに埋め込んでいる自作の関数が今回の原因だと考えられます。
1.以前同じ様な事象の時と同じようにディレイ処理を入れて対策
2.シート上のセルの計算で躓いているので、一度シート上の自動計算を一時停止してその計算結果が必要な処理前に計算させる
3.自作関数を削除して別のアプローチに切り替える


対策の3に関しては、今直ぐにどうこうできる感じではないので、直ぐに出来そうな対策1と対策2で考える。

対策1
ディレイ処理を数秒間入れてみる。結果的にはExcelが落ちる時と落ちない時があり不安定。
対策2
Excelが落ちる事が全くない。
という結果だったので、対策2で修正して終了。


そして、ソースコードは騎手や馬の起点を調べるマクロの方が複雑ではあるけど、今回問題になっていたシート上の自作関数はそちらのマクロでも使用するので、同じように修正しました。

その後はExcelが落ちる事は無く、現在も安定して動作しています。
対策3の別のアプローチする方が、恒久対策になるとは思ってますが、今でも中々良い案が浮かばない。だけど、いつの日にかは切り替えたいですね。
(続く)

2024年10月14日(月)は3日間開催最終日ですので無料公開としたいと思います。よろしくお願いいたします。

2024_1006の競馬予想ソフトの目です。

1.ワイド予想

2.馬連予想

3.複勝予想

予想の参考にしていただければ幸いです。よろしくお願いいたします。
結果はまた更新します。


★結果の追記です(20241006)【Update】★


今日はワンパンチ足りない成績でした。ワイドの方は回収率66%と伸びきれず。馬連の方は回収率42%とワンパンチ足りない成績でした。複勝の方は回収率77%とまずまずの成績でした。
この記事を購入し参考にして的中された方おめでとうございます。

最後までお読みいただきありがとうございます。
購入してくださった皆さん本当にありがとうございます。お疲れ様でした。

この記事が参加している募集

この記事が気に入ったらサポートをしてみませんか?