質問掲示板
岡三RSS
集いの広場

アップロードされたファイルおよび投稿内容についての注意事項 別窓

複数の単語で検索する方法 別窓

【国内株式、先物・オプション】岡三RSS質問箱

てぃー

約定時のFOPPOSITION関数の挙動について

キャプチャ.PNG (6.2KB)

皆さんこんにちは。

以前から悩まされている挙動があり、何か解決ヒントをいただければと思い書き込みさせていただきます。

FOPPOSITION関数で保有情報を取得、表示しています。複数の項目を並べて表示しているので、通常は、***END***が同じ行に並んで表示されています。

ポジションの返済注文が約定したら、***END***の表示は、すべて1行ずつ上に詰まると思います。

ところが、なぜか1項目だけ消えずに残ってしまう項目があります。添付画像は、「銘柄名」がその状態になったときの例です。

このとき、関数を記述しているセルをダブルクリックしてあげると正しい表示に戻るのですが、それまではずっと古い情報が残ったままになってしまいます。

この症状がなぜ起きるか、また防止する方法があればご教示いただけないでしょうか。よろしくお願いいたします。

2018年10月31日

Ryo Ohno

てぃーさん、こんにちは!!
返信が遅くなりまして、申し訳ありません。

ダブルクリックしたときだけ、表示が更新されますか・・・

ちなみに、ダブルクリックをすると、セルは編集モードになりますでしょうか?
もし、編集モードになる場合は、編集モード中に表示が正常に戻るという動きになりますでしょうか?

2018年11月05日

ログインしてコメントを投稿する

てぃー

Ryo Ohnoさん、ご返信ありがとうございます。

はい、ダブルクリックすると編集モードになります。編集モードになって、再度、関数を入力した扱いになったら、表示が更新されるんだと思います。

ちなみに、注文が約定したときに、いつもこのような状態になるわけではありません。大抵の場合は正常に全列が更新されるのですが、たまに一部の列のみ表示が残ったままになるといった感じです。

2018年11月06日

ログインしてコメントを投稿する

Ryo Ohno

編集モード中に更新がかかるのではなく
編集モードから確定して、編集モードから抜けた時に更新がかかるんですね・・・
Excelのバージョンでは編集モード中に更新がかかってしまうという不具合があったので
それ絡みかと思いました・・・
違いそうですね・・・

自分は、***END***が二重になる事はよくあるのですが、
残念ながら、関数が一部だけ実行されないという状態になったことがありません。

岡三RSSの関数なので、計算方式が手動になってるというのも関係ないですし・・・
VBAから無理やり更新を掛けるという方法もあるのですが、
毎回起きないということを考えると負荷が心配です。

ちなみに発生した時ですが、FOPPOSITIONの表示先のセルを消して場合は
どのようになりますでしょうか?

なかなか厄介ですね・・・

2018年11月07日

ログインしてコメントを投稿する

てぃー

>編集モードから確定して、編集モードから抜けた時に更新がかかるんですね・・・

まさにその通りです…

幸か不幸か、今日はこの現象が起きないため、表示先のセルを消した場合にどのようになるか確かめられていません…

発注などはVBAを周期的に動かして処理しているため、その中でVBAから無理やり更新をかける方法も試してみたいです。VBAでセルの更新をかける方法をご教示いただけないでしょうか。

2018年11月07日

ログインしてコメントを投稿する

Ryo Ohno

幸か不幸か発生しませんか・・・
このままずーと発生しないことを祈ります・・・


VBAでセルの計算式を更新するには
以下のように、Formulaというメソッドを使用すると、
編集モードの様に上書きしたのと同じような状況になります。

Range("A1").Formula = "=FOPPOSITION(""銘柄コード"",A2,""0"")"

これで解決すると良いのですが・・・

2018年11月08日

ログインしてコメントを投稿する

てぃー

Ohnoさん、

VBAでのセル編集モード再現方法ありがとうございます。

肝心の症状ですが、本日も発生しません…
これまで必ず1日に1回は起きてたんですが…
本当にこのままずーっと発生しないのかなあ…

また発生し始めたら、Formulaを試してみます!

2018年11月09日

ログインしてコメントを投稿する

てぃー

Ohnoさん、

本日、めでたく?発生しました!

それで、FOPPOSITIONの表示先のセルを消してみたのですが、正しい位置に***END***が表示されました。

ということは、VBAの処理では、関数を更新する他に、表示先のセルをクリアする、でもよいということになるのでしょうか…

2018年11月12日

ログインしてコメントを投稿する

Ryo Ohno

てぃーさん、めでたく発生しましたか(笑

表示対象のセルを消した場合に、再表示がかかる場合は、
その表示対象のセルのクリア処理をVBAで入れてあげて下さーい。
多分、関数の更新処理はなくても大丈夫だと思います!!

岡三RSSの関数は、処理負荷の軽減のためか、
表示対象のセルが書き出しをする内容と同じ場合は、
再表示を行わないようになってるみたいです。
※内部を完全に知ってるわけではないので、正確には違うかもしれませんが・・・

通常は、ポジションが更新されると、それを無視して更新がかかるのですが、
何かの拍子に変わらない時があるみたいです。
自分も何回か遭遇しました(笑

2018年11月13日

ログインしてコメントを投稿する

てぃー

Ohnoさん、ありがとうございます。
さっそくセルのクリア処理を入れることにします。

岡三RSSはクセをうまくケアしてあげる必要がありますね。
解決できて大変助かりました。
ありがとうございました。

2018年11月14日

ログインしてコメントを投稿する

すべての投稿を表示する

to_top
to_top

アップロードされたファイルにはウイルスチェックを行っておりますが、未知のウイルス等に感染されている場合がありますので、アップロードされたファイルのご利用はご注意ください。
また、取引パスワード等の重要な情報を投稿内容に含めないようご注意ください。
なお、アップロードされたファイルの利用や投稿内容によって、投稿者自身や他の利用者が被った損害に対して当社は一切責任を負いません。

また、セキュリティの関係上、一部コマンド等を含む内容を送信するとエラー画面が表示され、投稿ができない場合がございます。何卒ご了承ください。

岡三RSS集いの広場では、複数の単語による検索が可能です。

例)関数 and サンプル
→AND検索となり、「関数」および「サンプル」を含む検索結果が表示されます。

例)関数 or サンプル
→OR検索となり、「関数」または「サンプル」を含む検索結果が表示されます。

例)関数 not サンプル
→NOT検索となり、「関数」を含むが「サンプル」は含まない検索結果が表示されます。

※and、or、notの前後は半角スペースで区切ってください。
※単語の間を半角スペースで区切るだけだと、OR検索となります。