Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

イルカになりたい(TokyoR #63 LT)

1,084 views

Published on

Tokyo.R #63のLTスライド(かなり色々削った版)です。

Published in: Data & Analytics
  • Be the first to comment

  • Be the first to like this

イルカになりたい(TokyoR #63 LT)

  1. 1. イルカになりたい Tokyo.R #63 @wonder_zone
  2. 2. 本スライドでの発言は所属している 組織の意見ではありません
  3. 3. 一般の方が言うパソコンができる人 = Excelマスター
  4. 4. VBAの実行が遅い!!! ▪ めっちゃわかる ▪ 初心者だとマクロの記録で作る人が多いから 仕方ない ▪ あなたもそんな時代があったはず ▪ 私もあった ▪ Excel VBAが猛威を振るう業界なので、添付ファイル がxlsmでも抵抗感なくす
  5. 5. 1. 描画を殺す ▪ 昔から言われてる常套手段 ▪ でも誰もやらない ▪ いちいち描画したりしてるからほんとに遅い Private Sub KirimaSyaro() Application.ScreenUpdating = False 'hoge Application.ScreenUpdating = True End Sub
  6. 6. 1. 描画を殺す ▪ 昔から言われてる常套手段 ▪ でも誰もやらない ▪ いちいち描画したりしてるからほんとに遅い Private Sub KirimaSyaro() Application.ScreenUpdating = False 'hoge Application.ScreenUpdating = True End Sub
  7. 7. 2. 変数の適切な型宣言 ▪ ヒヨコ期脱出後あるある事案 ▪ 頼むからやってくれ ▪ メモリバカ食い、シンクライアントがフリーズする原因 はだいたいこいつのせい Dim Suji ‘Variant型:これマジでやめて Dim Suji As Long ‘Long型:Integer型は16bitのためスルー
  8. 8. 2. 変数の適切な型宣言 ▪ ヒヨコ期脱出後あるある事案 ▪ 頼むからやってくれ ▪ メモリバカ食い、シンクライアントがフリーズする原因 はだいたいこいつのせい Dim Suji ‘Variant型:これマジでやめて Dim Suji As Long ‘Long型:Integer型は16bitのためスルー
  9. 9. 3. 配列・連想配列 ▪ 信じられないかもしれないけどある ▪ ていうかこっち使うほうが高速 ▪ 積極的に使って欲しい ▪ 頼むからセルに書き込みとかやめて Dim CellRange As Range Set CellRange = ActiveSheet.Range("A1:AZ156") Dim CellArray As Variant CellArray = CellRange
  10. 10. 3. 配列・連想配列 ▪ ハッシュテーブル(連想配列) Dim data As Object Set data = CreateObject("Scripting.Dictionary") data.Add "gepuro", 174 data.Add "cancolle", 172 data.Add "teramonagi", 181 Set obj = Nothing
  11. 11. 4. イベントを発生させない ▪ プログラムの内容によっては弊害が生じるらしい ▪ でもやっておくとめっちゃ速い Private Sub HotoCocoa() Application.EnableEvents = False 'hoge Application.EnableEvents = True End Sub
  12. 12. 4. イベントを発生させない ▪ プログラムの内容によっては弊害が生じるらしい ▪ でもやっておくとめっちゃ速い Private Sub HotoCocoa() Application.EnableEvents = False 'hoge Application.EnableEvents = True End Sub
  13. 13. 5. 計算を手動化 ▪ プログラムの内容にもよるけど、計算をガシガシするような ものじゃなければ手動化したほうが良い ▪ ここまでのテクニックをwith文で囲ったりする人もいるけど、 一時的な解除とか考えるとめんどくさいのでそれぞれ宣言 させたほうが良いかもしれない Private Sub KafuChino() Application.Calculation = xlCalculationManual Application.Calculation = xlCalculationAutomatic End Sub
  14. 14. 5. 計算を手動化 ▪ プログラムの内容にもよるけど、計算をガシガシするような ものじゃなければ手動化したほうが良い ▪ ここまでのテクニックをwith文で囲ったりする人もいるけど、 一時的な解除とか考えるとめんどくさいのでそれぞれ宣言 させたほうが良いかもしれない Private Sub KafuChino() Application.Calculation = xlCalculationManual Application.Calculation = xlCalculationAutomatic End Sub
  15. 15. Enjoy!

×