【VBA】現場で学んだVBAのルール
でくわした環境
常駐していた岩本町(現在は西日暮里)のベンチャー企業にて最初の業務でVBAを利用したNxTコムの業務効率化ツールを作成することになった。そこでは独学では学べなかった掟?ルール?アドバイスを教えてもらったのでここにメモします。
Copyメソッドは使わない
copyメソッドはクリップボードにコピーしているので、VBAが動いているときに別作業でコピーしたタイミングとcopyメソッドが動いたタイミングが合致したときにVBAでコピーしたかった値ではなく、別作業でコピーした値をコピーしてしまう恐れがあるらしい。
ActiveSheetやSelectを使わない
Activesheetやselectはクリックで指定いるのと変わらないため、もしVBAが動いているときに他のシートやファイルをクリックした場合、クリックしたシートがActivesheetやselectされていることになるため誤作動を引き起こす原因になると教わった。
ひとつひとつシートを宣言していた↓↓
Dim newOrganization As Worksheet
Set newOrganization = ThisWorkbook.Worksheets(NEW_ORGANIZATION)
Dim newOrganizationCells As Range
Set newOrganizationCells = newOrganization.Range("A1")
On Error GoTo を使うこと
お客様がツールを使用し、VBAでエラーが発生してコードのエラー箇所が表示されても「あ、え?」となるからOn Error GoToで飛ばしてMsgBoxが表示されるようにした。
Application.ScreenUpdatingを使うこと
VBAで処理を開始した際、画面がパカパカするのでこれを使うように言われた。なんか画面更新をまとめてしてくれるとか意味があった気がする。
この記事が気に入ったら、サポートをしてみませんか?
気軽にクリエイターの支援と、記事のオススメができます!
気軽にクリエイターの支援と、記事のオススメができます!