Ryo Ohno
岡三RSSがデータで更新した際に発生するイベントについて(VBA)
岡三RSS夏期講習会のセッションCで登壇させて頂きました、大野です。
2回目のセッションで、以下のようなご質問を受けました。
『岡三RSSがデータを更新した時に任意のマクロを実行することはできないか?』
その時はすぐに解答することができなかったのですが、
よく考えたら、ワークブックの再計算イベントで行けるのではと思い確認してみたら、
反応しました。
ワークシートではなくワークブック側で、
SheetCalculateのイベントを設定しますと、岡三RSSが更新した際に
再計算が走り、任意の処理を行うことが可能となります。
ご質問の方がここを見られるかは、
わかりませんが、ご本人に届くことを祈って・・・
また、同じような悩みを抱えられておられる方がおられましたら、
ご参考になれば・・・
2017年08月22日
miporin
こんにちは。
とてもわかりやすくはっきりした説明をありがとうございます。
上記のスケジューラを使う場合データー更新したらvba またデーター更新したらvbaの交互にせっていするのでしょうか?
お忙しいとは思いますがよろしくお願いします。
2017年08月22日
Ryo Ohno
再計算.xlsx (60.7KB)
miporinさん、初めまして!!
こちらは、イベントと言いまして、少し難しいのですが
再計算(Excelがセル関数の計算をしたとき)した時に、任意のVBAを動かせるようになります。
#onTimeが『1秒後』と指定された時間にVBAを実行するように設定するに対し
#SheetCalculateは『再計算された』時にVBAを実行できるようになる感じとなります。
1.岡三RSSがデータを取得する
2.Excelが更新されたデータで再計算をする
3.SheetCalculateのイベントが発生!!
4.SheetCalculateに書かれた内容が動く!!
というような流れでしょうか?
ですので、onTimeのように、1秒後にまたVBAが動くように再設定せずとも、
岡三RSSがデータを取得する度にVBAを動かく事が可能になります。
言葉だけでは難しいと思いますので、
どんな感じになるかVBAの画像を張ってみました。
ご参考にあれば幸いです。
P.S.
セミナーに参加された方だと思って内容を書いたのですが、
もし参加されていない方の場合、分かりづらいと思いますので、
その時はご連絡を頂けますと、別の記載の仕方に変えたいと思いますっ!!
2017年08月23日
ゾウ
いつもお世話になっております。
本投稿とは直接関係ないのですが、セッションCの内容について質問させていただけますでしょうか。
プレゼン資料31枚目に、表示先の設定がないものについてはVBAで取得可能と書かれておりますが、これはどのような意味合いでしょうか。
VBAの変数に直接格納可能と受け取りましたが、うまく取得できないようです。
例:(a="N/A"が格納されます)
sub test()
meigara=1570
a=quote(meigara,"","現在値")
end sub
FAQでも取得はできない旨の記載があります。
http://qa.okasan-online.co.jp/faq_detail.html?id=621&category=136&page=1
都合により参加できておりませんので、もしおかしなことを尋ねておりましたらご指摘ください。
お忙しい中恐縮ですが、よろしくお願いいたします。
2017年08月25日
Ryo Ohno
ゾウさん、ご指摘ありがとうございます
大変申し訳ありません。
最終的に、『Excel側で全部データは取得しようよ!!』と
話しの流れでしたので、
内容が複雑になってしまいそうなので、
詳しくは記載していませんでしたし、詳しく説明も行っていませんでした。
quoteなどの関数を利用する際は、
一度、Excelの方に記述していただくと、VBAの方で取得が可能になります。
#昔は取れてたような記憶がありますが、最近は取れなくなってるみたいです。
今、考えてみると参加されずにマニュアルを見てVBAだけで処理をされたいと思われた方にとっては
かなり誤解を招く資料でした。
次回の資料には反映をさせたいと思います。
また、今回の資料の補足って事で追加修正がもし可能なら、入れておきます。
ご指摘本当にありがとうございます。
助かりました。
2017年08月26日