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

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

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

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

ストレッチ博士

他のエクセルファイルを開くとマクロエラーが発生してしまいます。いい方法ありませんでしょうか?

システムトレード用のエクセルが基本的に常時稼働しているわけですが、他のエクセルファイルをアクティブにしてしまうと、トレード用のファイルでイベントプロシージャが動いた際に、このブックにはそんなシートがありませんみたいなエラーになります。

一応、トレード専用機なのですがシミュレーションなどほかのファイルを使いたいときもありまして、現状はシステムトレード用のエクセルいったん閉じるしか方法がないという状態です。

他のブックで作業していてもバックで動き続けてくれるようにする方法がありましたらご教示くださいませ。

2022年01月19日

大野 了

ストレッチ博士さん、こんにちは!!

複数解決方法があるのですが、
一番簡単なのは、Excelを別プロセスで動かすことだと思います!!

Excelを二つ起動させると、
見た目は別のExcelですがプロセスというプログラムの管理領域が同じ場所に、二つのExcelが起動してしまいます。
この状態だと、VBAの一部が二つのExcelで共有される(Workbooksが同じになる)ため、
Sheet名などをWorkbookから指定していない場合、アクティブになったExcelのWorkbookを見に行ってしまい、
そこにシート名がないと『シート名がない』的なエラーになってしまいます。

解決するには、Workbook名から指定するといいのですが、
それですと大量にコードを直さないといけないので、二つのExcelが別のプロセスになるように起動してあげると、
コードを一切直さないくても、正常に動作すると思います
(自分もこのやり方でやっています!!)

やり方としては・・・
スタートメニューなどで、ExcelをALTキーを押しながらクリックすると、
『新しく別のExcelを起動しますか?』
と表示されます。
ここで"はい"を押すと、現在、起動しているシストレ用のExcelと別のプロセスで新しくExcelが起動します!!

これだとVBAを一切直さなくても、お互いが干渉しない個別の状態となります。

また、プロセスが別ですと、もしシミュレーション用のExcelが異常停止したような場合でも、
プロセスが別のためシストレ用のExcelが引きずられて死ぬこともなくなります。

デメリットとしては若干メモリを多く食ってしまうのですが、最近のPCですとまったく問題ないと思いまーす!!

2022年01月19日

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

ストレッチ博士

さすがの大野様、誠にありがとうございます。
Workbook名から指定するといいのかなと思いつつ面倒だなッと思ってしましました。
調べてみると確かにそのようなテクニックがあると判明しました。
ホントに感謝です。
その見識、もったいないです。
RSS用のシストレファイルを月額利用で販売したいですね!っていうかしませんか?

2022年01月19日

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

大野 了

ストレッチ博士さん、こんにちは!!

自分も同じことで困って、修正するのは面倒だったので別プロセスで上げるようにしています。
お役に立てて幸いです!!

月額利用で販売良いですねー
なんか汎用的なやつが出来て皆さんに喜んでもらえるといいですねー!!

2022年01月20日

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

すべての投稿を表示する

to_top
to_top

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

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

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

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

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

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

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