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

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

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

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

RSSユーザー

POSITION関数の***END***の表示がずれる時の修正方法とその他1点についてです。

お世話になっております。
一つは、POSITION関数の銘柄コード、保有数量、取得単価が並んでいるのですが、約定した時たまに取得単価とかがそのまま残っていて***END***が一段下にずれて表示されたままになっている場合があります。これを自動で直す方法はありますか。
二つは、ある銘柄のQUOTE関数の買付強度をあるセルに表示させておき、そのセルが>0.5の時実行というIF文を書いたのですがそのセル<0.5の時実行されてしまいました。セルは41.07%と表示されていました。セル値の書式とかが問題なのでしょうか、お教えください。

2022年02月03日

大野 了

RSSユーザーさん、こんにちは!!

>***END***が一段下にずれて表示されたままになっている
たまにありますね・・・
セル関数やExcelの設定だけでどうにかできないか考えてみたのですが
残念ながらこちらは自動で直すことは厳しいと思われます。
VBAを書けば、何とかなるのですが・・・


>QUOTE関数の買付強度
買付強度は"41.07%"という文字で表示されているため、数値との比較が正常にできていないようです。
A1セルにQUOTE関数を書いているとして

=VALUE(A1)<0.5

という感じで買付強度が出力されているセルをVALUE関数で囲ってあげると、41.07%を数値に変換しますので
比較可能になります!!

2022年02月03日

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

RSSユーザー

お世話になっております。
セルの値が数字として認識しない問題は、=A1*1でいいかなあと思っていましたが大野様の =VALUE(A1)に変更しました。
もう一つの問題である、***END***が一段下にずれて表示されたままになっている場合ですが以前大野様より以下のようなVBAを頂いていたので、各POSITION関数の銘柄コード、保有数量、取得単価の下の数のカウント合計が同じでない場合A1=1になるように設定しマクロ実行(該当箇所の表示を削除)するようにしてみます。

「セルA1が1になったらマクロ実行」

シート1のコード
 Option Explicit
Private PrevData As String

Private Sub Worksheet_Calculate()
If PrevData <> "1" And Range("A1").Value = 1 Then
Call Application.Run("Macro1")
End If

PrevData = Range("A1").Value
End Sub

モジュール1のコード
Option Explicit

Public Sub Macro1()
MsgBox "aaa"
End Sub

2022年02月03日

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

RSSユーザー

何度もすみません。普段はUWSCのスケジュール設定でタイマーによりマクロ実行しているのですが、以下の文にセルA1=1などと条件をつけてUWSCから実行はできないでしょうか。「UWSCは独立系でマクロコードの実行が中断しないかなあと」

try
ExcelObj = GETACTIVEOLEOBJ("Excel.Application")
ExcelObj.Run("Macro1")
except
exit
endtry

2022年02月03日

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

大野 了

RSSユーザーさん、こんにちは

以前、やり取りをさせて頂いた方だったんですね!!

>以下の文にセルA1=1などと条件をつけてUWSCから実行はできないでしょうか。
こちらはA1=1の時だけMacro1を動かされたいという事でしょうか?

UWSCからやられる場合は
try
ExcelObj = GETACTIVEOLEOBJ("Excel.Application")

If ExcelObj.Sheets("Sheet1").Range("A1").value = 1 Then
ExcelObj.Run("Macro1")
EndIf

except
exit
endtry

というような感じで大丈夫かと思われます!!
※テストはしていませんので、若干の構文間違いなどありましたら、申し訳ありません。

2022年02月03日

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

RSSユーザー

すみません、私ばかちんです。
これだと結局UWSCスクリプトをタイムスケジュールで実行しなければいけません、(1分おきとかに設定)
で、考えていたら、いぜんに***END***より上の数が銘柄コード、取得単価、保有数量それぞれ同じにカウントしたら注文できるという誤発注の対策を教えていただいていました。そこで思いついたのが同じカウントじゃない時つまり約定中のマクロ実行(Sample)でした。このSampleは「ルパンのタイプライター音」で結構きにいっているものです。

話が長くなってしまいましたが、このvbaの中でSampleの前にMacro1(***END***の範囲を一度Deleteするマクロ)を実行させてからSampleを実行させる文はどう書けばよいか教えてください。
以下の文がそうです。シートを右クリックしてコード表示を押すとでてくるやすです。本物は線が引いてあります。

Worksheet Calculate

Private Sub Worksheet_Calculate()
If Range("N4") = 0 Then Call Sample
End Sub


Private Sub Worksheet_Change(ByVal Target As Range)
If Range("N4") = 0 Then Call Sample
End Sub

2022年02月03日

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

大野 了

RSSユーザさん、こんにちは!!

ルパンのタイプライター音懐かしいですねー
久々にルパンの『ふ~じこちゃ~ん』を聞きたいです(笑


さて、ご質問を頂いた内容の回答とは異なってしまいますが、
今回のご質問の元々の発端は"***END***"が複数行に出てしまって、誤発注が防げないという事になりますでしょうか?

もしそれであれば、他の方に頂いたご質問の回答とは異なって、
大変もうしわけないのですが、
こちらのリンクの『END行チェックサンプル.xlsx』の方式でやって頂きますと、
***END***が消えていなくても、誤発注が防げると思います。

https://bbs.okasan-online.co.jp/ont/rss/board/?category_id=1&topic_id=489

以前、やり取りをさせて頂いたみたいですので、
もしかすると以前に自分が不適切なやり方をお伝えしてしまったのでしたら、大変申し訳ありません。

VBAで***END***を消すより簡単だと思います!!

もし、不都合がございましたら、またご返答頂けますと幸いです。

2022年02月04日

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

RSSユーザー

取引デモ1.xls (26.0KB)

すみません、
***END***がきれいにそろっていないとだめな理由は添付ファイルのようにたの保有銘柄にも影響し全取引が停止してしまうからです。
ついでに、質問しちゃいますがPOSITION関数の売買区分の 売 買 の表示は文字表記でしょうか? いろいろすみません、ザラバ明けでけっこうですので!

2022年02月04日

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

RSSユーザー

何度もすみませんでした。
結局、UWSCで一分おきにエクセルマクロ(***END***の範囲をDELETE)を実行させることにしました。VBAだといったんDELETEした後また***END***の出現が不揃いでくるので、DELETEのマクロが動き出しエンドレスになってしまいます。
いろいろお騒がせしました!
 

2022年02月05日

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

大野 了

RSSユーザーさん、こんにちは!!

なるほどー
UWSCの方がご都合がよかったんですねー

なにはともあれ、安定したようでよかったです!!

2022年02月05日

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

すべての投稿を表示する

to_top
to_top

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

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

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

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

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

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

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