[ノンプロ研]VBA初心者講座6期第4回・オブジェクト、コレクション

『コミュニティ「ノンプログラマーのためのスキルアップ研究会」初心者講座VBA コース6期第4回のツイートまとめです。 https://tonari-it.com/community-nonpro-semi/
2
おおさわ @vC12H22O11v

グローバルで使えるプロパティ(Application,Workbooksなど)は便利だけど、ユーザー操作の干渉を受けやすい。自分で使う分には勝手がわかってるからエラーが起きなくても、他の人が使うとすぐ挙動が変わっちゃったりするんですよね😇 ⇒オブジェクト名を使おう! #ノンプロ研 #VBA初心者講座

2022-05-23 21:14:59
根岸 @2a9SouLnhptnIqG

グローバルで使えるオブジェクトは省略可能。 上位オブジェクトを省略すると アクティブなオブジェクトになる。 #ノンプロ研 #VBA初心者講座

2022-05-23 21:16:10
おおさわ @vC12H22O11v

【雑談①】 この辺って、例えばシートをまたいでコピーするとき、コピー元がアクティブになってないとエラーになるから、Select入れて~みたいなことを以前はやっていましたが、 #ノンプロ研 #VBA初心者講座

2022-05-23 21:17:54
おおさわ @vC12H22O11v

【雑談②】 これはコピー元をアクティブにしないといけないんじゃなくて、グローバルで使えるプロパティを使って書いてしまっていたから、エラーが起きてたんだと気づいてすっきりしましたね~。 #ノンプロ研 #VBA初心者講座

2022-05-23 21:18:12
まる🍑5550 @maru_power_5550

Active〇〇は、ユーザーの干渉を受けるので使わないように! 新しいブックを開いた直後とかで、確実に操作対象がアクティブなら…まぁよし!! #ノンプロ研 #VBA初心者講座

2022-05-23 21:18:41
根岸 @2a9SouLnhptnIqG

ActiveCell ActiveSheet ActiveWorkbook など、「アクティブな」はユーザー操作の干渉受けるので、オブジェクト変数に入れて使いましょう。 #ノンプロ研 #VBA初心者講座

2022-05-23 21:20:03
根岸 @2a9SouLnhptnIqG

オブジェクトの指定は コレクション(インデックス) コレクション(名前) より オブジェクト名を使った方が確実&シンプル #ノンプロ研 #VBA初心者講座

2022-05-23 21:23:39
おおさわ @vC12H22O11v

【オブジェクト変数の宣言】 Set 変数名 = オブジェクト 代入するときはSetを使います。 Setを付け忘れてエラーが発生しちゃうのはきっとあるあるのはず・・・ vbabeginner.net/error-91-respo… #ノンプロ研 #VBA初心者講座

2022-05-23 21:24:31
まる🍑5550 @maru_power_5550

オブジェクトだけなんでSetがいるの? いやいや、実はLetが省略されているんです! なんですって…!😳 #ノンプロ研 #VBA初心者講座

2022-05-23 21:25:41
根岸 @2a9SouLnhptnIqG

オブジェクト変数の宣言 Dim 変数名 As オブジェクトの型 #ノンプロ研 #VBA初心者講座

2022-05-23 21:25:48
おおさわ @vC12H22O11v

【オブジェクト変数の宣言】 順番逆だけど・・・ Dim hoge as Object って宣言も出来るけど、Workbook、とかRangeとか何についてなのかわかりやすいように書いてあげましょー #ノンプロ研 #VBA初心者講座

2022-05-23 21:26:12
根岸 @2a9SouLnhptnIqG

オブジェクトの代入は Set 変数名 = オブジェクト Setは忘れがちなので気を付けてください。 実は普通の変数の代入に Let 変数名 = 値 通常Letは省略している。 #ノンプロ研 #VBA初心者講座

2022-05-23 21:28:32
FukuCyndi papa @FukucyndiP

“as Object” はどのオブジェクト(ブック?シート?テーブル?)を指すか明示できていない分曖昧さが残りますね #ノンプロ研 #VBA初心者講座 #エア twitter.com/vc12h22o11v/st…

2022-05-23 21:31:29
まる🍑5550 @maru_power_5550

なぜか VBA初心者06_海苔.xlsm に空目した( ;つд⊂)ゴシゴシ #ノンプロ研 #VBA初心者講座 pic.twitter.com/6TJs5vWjxt

2022-05-23 21:31:41
拡大
おおさわ @vC12H22O11v

▼Withステートメント With オブジェクト  .メンバー End With 同じオブジェクトに対して何度も色々な操作をするときに使えます。めちゃ可読性あがって便利なのでがんばって使いましょー😃 #ノンプロ研 #VBA初心者講座

2022-05-23 21:32:43
まる🍑5550 @maru_power_5550

さっきAddしたブックがアクティブになってたら、エラーになったー😳 #ノンプロ研 #VBA初心者講座 pic.twitter.com/lOO8JBvjwn

2022-05-23 21:35:26
拡大
拡大
根岸 @2a9SouLnhptnIqG

オブジェクトを省略できるWithステートメント With オブジェクト  .メンバー1  .メンバー2  .メンバー3 End With 同じオブジェクトを何度も書くときはWithステートメントでまとめると見やすい。 #ノンプロ研 #VBA初心者講座

2022-05-23 21:36:08
おおさわ @vC12H22O11v

【For Each~Next文】 For Each 変数 In コレクション '処理 Next 変数 ※毎回の繰り返しで取り出した要素が変数にセットされる 参考:excel-ubara.com/excelvba1/EXCE… #ノンプロ研 #VBA初心者講座

2022-05-23 21:36:36
FukuCyndi papa @FukucyndiP

Withで纏めるか、オブジェクト変数を使うか悩みどころでもあります-ω-) でも見た目スッキリ読みやすい方をチョイスしてます #ノンプロ研 #VBA初心者講座 #エア twitter.com/vc12h22o11v/st…

2022-05-23 21:37:46
根岸 @2a9SouLnhptnIqG

オブジェクトをループするには For Each 変数 In コレクション  '処理 Next 変数 変数はコレクションのメンバーのオブジェクト型にします。 コレクションからメンバーのオブジェクトを1つづつ取り出してループしますが、順番は指定できません。 #ノンプロ研 #VBA初心者講座

2022-05-23 21:43:41
まる🍑5550 @maru_power_5550

これ、すごく見やすいのだ😍 #ノンプロ研 #VBA初心者講座 twitter.com/wa_maru_gm/sta…

2022-05-23 21:43:50
まる🍑5550 @wa_maru_gm

イミディエイトウィンドウでDebugした値を見るとき、あれ?今回のどこから?ってなりがちで、Ctrl+G→Ctrl+A→Delete→F7ってしてたけど、試験的に始めに Debug.Print vbNewLine & "---ここから---" って入れてみることにした! こっちのが単語登録できるし楽な気がする🤔 #まるのVBA初心者講座

2022-05-23 09:24:03