スマイルキャッチャーの「取得」ボタン高速化について
○イントロダクション
「スマイルキャッチャー」とは、
無料で配布されていたオプション取引に関するツールです。
一旦公開停止となりましたが、以下のサイトにて復刻され、
条件付きでの無料配布となっています。
スマイルキャッチャーsc0.64.rdx/ダウンロード | ゑもんレポート【オプション取引編】
個人でのオプション取引に非常に有用なツールですので、
私的利用の範囲で改良を加えてみたいとソースコードを見ていたところ、
動作の高速化を若干行うことができると分かりました。
このnoteではその手順を書き留めておきます。
高速化の該当部分:
「取得」ボタンを押したときの動作時間短縮
(楽天RSS銘柄取得→銘柄データ一時保存シートへの転記動作)
○手順
1.Excelのマクロ編集画面を開きます。
2.「標準モジュール→限月取得」モジュールより、
GetOptionsListサブルーチンを探します。
3.該当サブルーチン内の以下のコードを削除します。
objListSheet.Select
4.該当サブルーチン内のコードを以下のように変更します。
変更前:
For i = 1 To UBound(list, 1)
For j = 1 To UBound(list, 2)
Cells(i, j) = list(i, j)
Next j
Next i
Rows(1).Select
Selection.Delete Shift:=xlUp
Range("A1").Select
変更後:
With objListSheet
.Range(.Cells(1, 1), .Cells(UBound(list, 1), UBound(list, 2))) = list
.Range("A1").EntireRow.Delete
End With
5.上書き保存します。
6.「設定」シートの「取得」ボタンの動作が少し早くなっていることを確認します。
○どうして高速化するのか
元のソースコードは「配列の中身を一つずつセルへ転記する動作」となっていました。
これを「該当範囲のセルへ配列の内容を一気に代入する動作」とすることで、処理を高速化・軽量化させています。
サポートありがとうございます🙇♂️サポートされた資金はリサーチ費用や書籍の購入にあてられ、新たな有益なnote執筆の材料として再投資されます。ご支援いただけるとさらに充実した内容を提供することができます。どうぞよろしくお願いいたします。