[ノンプロ研]VBA中級講座第3期第1回・スコープとプロシージャ
Publicは、他所の標準モジュールだけでなく、シートモジュール、クラスモジュール、フォームモジュールにまで有効範囲が広がる。 つまり、プロジェクトレベルになります #ノンプロ研 #エア中級VBA
2021-08-06 20:35:34スコープとは変数やプロシージャなどを使用できる範囲。 スコープはなるべく小さくする。 スコープが大きくなると可読性が下がる、管理対象が増える。脳の負荷が増える。 #ノンプロ研 #VBA中級講座
2021-08-06 20:36:12パブリックモジュールレベル便利じゃん!と思うかもしれないけど基本的にはスコープは広げるのではなく絞るべき 【スコープを広げるデメリット】 ・データ型がパッと見わからない ・変数がパブリックかプライベートで宣言させているのかパッと見でわからない #ノンプロ研 #VBA中級講座
2021-08-06 20:37:12・管理対象の増加する →遠くに書かれているものや、名前かぶりを意識する必要がある プログラムを書くときは構成を考えるのでいっぱいいっぱいになるので余計なリソースを使わないようにする #ノンプロ研 #VBA中級講座
2021-08-06 20:37:13Public x As String で宣言して変数xが適用できる範囲は 別モジュールでも可能だが、同一ブック内のみ (他ブックはダメだった) #ノンプロ研 #VBA中級講座
2021-08-06 20:38:57うごいた✨ 使用可能です!!!がいっぱいでました✨ #ノンプロ研 #VBA中級講座 pic.twitter.com/qOk8A8teVt
2021-08-06 20:40:12スコープが広いと、いちいちDimしなくっていいからコード書きやすくって良さげ•••• ヾノ・ω・`)ノンノン コードのデバッグやメンテナンスする時にしんどい思いをするので、スコープは狭く狭くせまく #ノンプロ研 #エア中級VBA
2021-08-06 20:40:14Subプロシージャ 手続きの実行 戻り値を得ることができない Functionプロシージャ 手続きの実行 戻り値を返すことができる #ノンプロ研 #VBA中級講座
2021-08-06 20:43:29プロシージャの種類は5種類ある ・Subプロシージャ ・Functionプロシージャ ・Property Letプロシージャ ・Property Setプロシージャ ・Property Getプロシージャ #ノンプロ研 #VBA中級講座
2021-08-06 20:44:30VBAは大文字小文字あんまり気にしなくて良いのが良い✨ #ノンプロ研 #VBA中級講座 ただ変にセミコロンとかシングルクォーテーションとか入力する癖が抜けない。
2021-08-06 20:46:19広いスコープの変数宣言するなら、それが何者か見たらすぐわかるヤツですると、いいですねw FileSystemObject の fso とか、Dictionary の dic とか #ノンプロ研 #エア中級VBA
2021-08-06 20:47:06#ノンプロ研 #VBA中級講座 DateSerial関数って使ったことなかった こんな関数あるんだね~
2021-08-06 20:47:51DateSerial(Year(Date), Month(Date) + 1, 0) →今月末の日にち(今日出力すると「2021/08/31 」になる) #ノンプロ研 #VBA中級講座
2021-08-06 20:49:15演習1-05 MySub1_05から書くのではなくFuntionから書くと、メインプロシージャ(MySub1_05)を書くときに入力補完がつかえるのでおすすめです。 #ノンプロ研 #VBA中級講座
2021-08-06 20:50:10Sub は何かを処理するプロシージャ。 Function は受け取ったもの処理した結果を返してくれるプロシージャ。関数と言う言葉が今は一番しっくりきますね y=f(x)の f(x) #ノンプロ研 #エア中級VBA twitter.com/alice37308108/…
2021-08-06 20:51:28変数の有効期限を長い事勘違いしていたのでちょっと補足です。 プロシージャ内で宣言した変数の有効期間は、そのプロシージャが終了するまで。 宣言セクションで宣言した変数は、値は破棄されないで保持される。 #ノンプロ研 #VBA中級講座
2021-08-06 20:52:26Private i As Long Sub Test1() i = 10 End Sub Sub Test2() Debug.Print i End Sub Test1を実行した後にTest2を実行すると0ではなく、10とデバッグ出力される。 Endでプロシージャの終了や、ブックを閉じたときなどに値が破棄される。 #ノンプロ研 #VBA中級講座
2021-08-06 20:53:49プロシージャ化のメリット ・処理を分離すると主となる処理以外を意識から外せる ・再利用できる ・メンテナンスしやすい #ノンプロ研 #VBA中級講座
2021-08-06 20:57:30