Value,Select,Selectionの疑問について

VBA質問①

研修中に「Valueプロパティーを記載しなくても実行できています」と質問を受けました。

Valueプロパティーは、セルに代入させている値を表します。

何度か質問頂く内容ですが、基礎講座の2日間では、構文のルールをしっかり身に付ける事を考慮し、省略形式の記載は必要箇所以外は説明をしていません。正直、時間もないのが現状ですが…。(Valueは気を付けないと省略できる構文とできないものがあります。)気付いた生徒さんには今回は省略できますが記載しておきましょうと答えます。
そこで、簡単な省略できるものをご紹介します。

複数変数を宣言する場合の省略(カンマで区切るだけで1行に記載できます。)

 Dim B As String, C As String


コピーの省略
 Range(“A1”).Copy Destination:=Range(“B1”)
 (面倒なDestination:=は省略できます。)

 Range(“A1”).Copy Range(“B1”)

VBA質問②

「Select、Selection、Activeteは同じですか?」も何度か質問をされます。

・Selectメソッドは、指定したセルを選択します。

・Selectionメソッドは、Selectで選択しているものに対して、更に命令をする際に使用します。

・Activeteメソッドは、Selectで選択した範囲内で、セルをアクティブセルにする際に使用します。

結果でいうと、単一のセル選択だと、SelectもActivateも同じ動きです。複数範囲で使用する際には、以下のように使用する事が多いかと思います。
(セル範囲A1からC5を選択し、アクティブセルをB1にする)

Range(“A1:C5”).select
Range(“B1”).Activate

(例)各地区で、支店の売上合計と目標に達成したかをVBAで実行してみます。

達成結果セルを選択(Selectメソッド)して、その選択の文字を(Selectionメソッド)赤に設定しています。(本来With Selectionで複数書式をまとめるか、単純にExeclで書式をつけそうですが…。使用例としては、この2文のような記載方法になります。)

合計金額が目標にならなかったので、未達成メッセージがでます。
データべ―スなどの合計が求められていないデータを、VBAなら瞬時に合計から数字の比較、コピー、転記等まで一気に実行できます。また、行数が多いデータ、毎回のくりかえし作業の際に、VBAなら正確に、時間短縮で行えます。他言語よりは簡単に覚えられますので、習得したい方はぜひご連絡ください。