VBAコーディング

・サブプロシージャ

Sub aaa()

  メイン処理

  GoSub sub1 'ここでsub1に飛ぶ

  メイン処理

 Exit Sub

 sub1:

  サブ処理

 Return '戻る

End Sub

 

・業務エラー処理(スローして呼び出し元で)

Sub a()

 IF (エラー) then Err.Raise Number:=999

End Sub

 

Sub Main()

 On Err Goto Have.Err

  call a() 

 Exit Sub 

Have_Err:

 Select Case Err.Number

   Case 999 (処理)

End Sub

 

・cell→rangeの変換

cells(1,1).Adress→$A$1

cells(1,1).Adress(True,True)→$A$1

cells(1,1).Adress(False,False)→A1

など

 

・Selectメソッドは使わない

Selectをするたびにアプリケーションの動作が入り、実行速度が犠牲になりますし、クリップボードを使うのはユーザーの干渉を受ける可能性があり危険です。

https://tonari-it.com/excel-vba-coding-guide-line/#toc13

 

・Callを使ってプロシージャを呼ぶ

Callなしで使われているコードは、(VBAに慣れてないと)「このコードは何かのメソッドやプロパティかなぁ」などとなってしまうことがあるからです。

http://www.excel-wing.com/study/jitumu/723

 

・GotoとGoSub

https://thom.hateblo.jp/entry/2015/09/15/000734