【VBA道場】#22 with句を使おう!

ExcelVBA

【VBA道場】#22 with句を使おう!



問題

A1セルにりんごと入力し、フォントカラーを赤、背景色を黄色にしてください。(ただし、Withステートメントを使って書くこと)

 

完成見本

解答

Sub vba_doujyou_22()

'A1のセルに対して
With Range("A1")
    .Value = "りんご"                '「りんご」という文字を入力
    .Font.ColorIndex = 3          'フォントのカラーは赤
    .Interior.ColorIndex = 6    '背景の色は黄色
End With

End Sub

サンプルファイル(マクロ有)

今回のマクロはこちらからダウンロードしてご使用いただけます。

 

解説

With object
statements
End With
object:オブジェクト名またはユーザー定義型名
statements:objectに対して実行するステートメント

 

今回はWithステートメントを使ってコードを書いてみました。
Withステートメントを使用すると、オブジェクトを何回も書く必要がなくなります。

文字で表すとこのような形ですね。

Withステートメントを使わない書き方

オブジェクト.プロパティ =値
オブジェクト.メソッド

 

Withステートメントを使った書き方

With オブジェクト
.プロパティ = 値
.メソッド
End With

主語を省略するようなイメージです。

 

今回の問題の場合は

 

Withステートメントを使わない書き方

A1セルの値は「りんご」
A1セルのフォントのカラーは赤
A1セルの背景の色は黄色
Withステートメントを使った書き方

A1セルの
.値はりんご
.フォントカラーは赤
.背景の色は黄色

となります。

 

もう少しVBAに近づけると

WithA1セル

.値はりんご
.フォントカラーは赤
.背景の色は黄色

End With

となります。

 

ではもう一度コードに戻ってみましょう。

Sub vba_doujyou_22()

'A1のセルに対して
With Range("A1")
    .Value = "りんご"                '「りんご」という文字を入力
    .Font.ColorIndex = 3          'フォントのカラーは赤
    .Interior.ColorIndex = 6    '背景の色は黄色
End With

End Sub

Range(”A1”)に対して、メソッドやプロパティの値を指定していることが分かります。

 

With句の後のメソッドやプロパティには必ず頭に「.」を付けます。
そして終わりには「End With」を記入します。

忘れないようにしましょう。

 

そして、今回は文字や背景色をカラーインデックスを使用して指定しました。
よく使う色はカラーインデックスで登録されているので、わざわざRGBや16進数で指定する必要がありません。

 

今回指定したカラーインデックスの他の色は以下の通りです。
赤や黄色、青などはよく使うので覚えておきましょう!

インデックス番号 RGB 説明
1 0, 0, 0
2 255, 255, 255
3 255, 0, 0
4 0, 255, 0 明るい緑
5 0, 0, 255
6 255, 255, 0
7 255, 0, 255 ピンク
8 0, 255, 255 水色
9 128, 0, 0 濃い赤
10 0, 128, 0
11 0, 0, 128 濃い青
12 128, 128, 0 濃い黄
13 128, 0, 128
14 0, 128, 128 青緑
15 192, 192, 192 25%灰色
16 128, 128, 128 50%灰色
17 153, 153, 255 グレー
18 153, 51, 102 プラム
19 255, 255, 204 アイボリー
20 204, 255, 255 薄い水色
21 102, 0, 102 濃い紫
22 255, 128, 128 コーラル
23 0, 102, 204 オーシャンブルー
24 204, 204, 255 アイスブルー
25 0, 0, 128 濃い青
26 255, 0, 255 ピンク
27 255, 255, 0
28 0, 255, 255 水色
29 128, 0, 128
30 128, 0, 0 濃い赤
31 0, 128, 128 青緑
32 0, 0, 255
33 0, 204, 255 スカイブルー
34 204, 255, 255 薄い水色
35 204, 255, 204 薄い緑
36 255, 255, 153 薄い黄
37 153, 204, 255 ペールブルー
38 255, 153, 204 ローズ
39 204, 153, 255 ラベンダー
40 255, 204, 153 ベージュ
41 51, 102, 255 薄い青
42 51, 204, 204 アクア
43 153, 204, 0 ライム
44 255, 204, 0 ゴールド
45 255, 153, 0 薄いオレンジ
46 255, 102, 0 オレンジ
47 102, 102, 153 ブルーグレー
48 150, 150, 150 40%灰色
49 0, 51, 102 濃い青緑
50 51, 153, 102 シークグリーン
51 0, 51, 0 濃い緑
52 51, 51, 0 オリーブ
53 153, 51, 0
54 153, 51, 102 プラム
55 51, 51, 153 インディゴ
56 51, 51, 51 80%灰色

 

おわりに

今回は「With」を使ってコードを書いていきました!
Withステートメントを使用すると、オブジェクトを何回も書く手間が省けます。

開発の効率もよくなるので、しっかりとマスターしましょう!

今日はここまで!

 

おすすめ参考書

Amazon

たった1秒で仕事が片付くExcel自動化の教科書

いちばんやさしいExcelVBAの教本

ExcelVBA逆引き辞典 パーフェクト

楽天

いちばんやさしいExcelVBA

 

 

すらすら読めるExcelVBA

[商品価格に関しましては、リンクが作成された時点と現時点で情報が変更されている場合がございます。]

スラスラ読めるExcel VBAふりがなプログラミング [ リブロワークス ]
価格:2035円(税込、送料無料) (2021/4/22時点)

楽天で購入

 

 

 

VBA逆引き大辞典

[商品価格に関しましては、リンクが作成された時点と現時点で情報が変更されている場合がございます。]

Excel VBA逆引き辞典パーフェクト第3版 [ 田中亨 ]
価格:2838円(税込、送料無料) (2021/4/22時点)

楽天で購入

 

 

タイトルとURLをコピーしました