ExcelマクロVBA入門 | 第51回.Withステートメント | Excelマクロの基礎と応用、エクセルVBAの入門・初級・初心者向け解説



最終更新日:2013-02-18

第51回.Withステートメント



With ステートメントは、


指定したオブジェクトに対してオブジェクト名を再定義することなく、


一連のステートメントを実行することができます。


構文


With object
[statements]

End With


With〜End Withの間では、


Withに指定したオブジェクト名を省略できるようになります。


通常は、


オブジェクト.プロパティ = 値


とするところを


.プロパティ = 値


のように書く事が出来るということです。



実例です。


Worksheets(1).Cells(1, 1) = 1

Worksheets(1).Cells(2, 1) = 2



これを、Withを使うと、

With Worksheets(1)
  .Cells(1, 1) = 1

  .Cells(2, 1) = 2
End With


になります。


つまり、


With〜End Withの間では、


.で書き始めれば、.の前のWithのオブジェクトが省略できることになります。

Range("A1").Font.Bold = True
Range("A1").Font.Color = vbRed
Range("A1").Font.Size = 12



これを、Withを使うと、

With Range("A1")
  .Font.Bold = True
  .Font.Color = vbRed
  .Font.Size = 12
End With


これは、さらに

With Range("A1").Font
  .Bold = True
  .Color = vbRed
  .Size = 12
End With


と書く事も出来ます。


ネストする事も出来ます。

With Range("A1")
  With .Font
    .Bold = True
    .Color = vbRed
    .Size = 12
  End With
End With


ただし、Withのネストは、可読性が悪いので、多用するのは避けましょう。


まずは、


With ワークシート

・・・

End With


これを使えるようにしましょう。


 Withステートメントを使った時の、最も多い間違いは、

先頭の「.」を書き忘れてしまう事でしょう。


これは、いくら注意しても、やってしまいます。


ただ、そのような間違いが多いと意識していれば、減らすことが出来るでしょう。



また、Withを使用する事は、記述を省略出来るだけでなく、


その処理速度も速くなりますので、積極的に使うようにして下さい。





同じテーマ「ExcelマクロVBA入門」の記事

第52回.オブジェクト変数
第53回.Workbookオブジェクト
第54回.Windowsオブジェクト
第55回.Worksheetオブジェクト
第56回.Rangeオブジェクト
第57回.Applicationのプロパティ
第58回.コレクションとは

新着記事 ・・・新着記事一覧を見る

空白セルを正しく判定する方法2|ExcelマクロVBA技術解説(5月6日)
フルパスをディレクトリ、ファイル名、拡張子に分ける|ExcelマクロVBA技術解説(4月15日)
テキストボックスの各種イベント|Excelユーザーフォーム入門(4月9日)
フォルダ(サブフォルダも全て)削除する、Optionでファイルのみ削除|ExcelマクロVBAサンプル集(4月4日)
最後の空白(や指定文字)以降の文字を取り出す|エクセル関数超技(3月26日)
先頭の数値、最後の数値を取り出す|エクセル関数超技(3月26日)
Excelファイルを開かずにシート名をチェック|ExcelマクロVBAサンプル集(3月23日)
数式の参照しているセルを取得する|ExcelマクロVBAサンプル集(3月18日)
CSVの読み込み方法(改の改)|ExcelマクロVBAサンプル集(3月17日)
変数とプロシージャーの命名について|ExcelマクロVBA技術解説(2月12日)

アクセスランキング ・・・ ランキング一覧を見る

1.最終行の取得(End,Rows.Count)|ExcelマクロVBA入門
2.ひらがな⇔カタカナの変換|エクセル基本操作
3.RangeとCellsの使い方|ExcelマクロVBA入門
4.Range以外の指定方法(Cells,Rows,Columns)|ExcelマクロVBA入門
5.徹底解説(VLOOKUP,MATCH,INDEX,OFFSET)|エクセル関数超技
6.変数とデータ型(Dim)|ExcelマクロVBA入門
7.セルの参照範囲を可変にする(OFFSET,COUNTA,MATCH)|エクセル関数超技
8.セルのコピー&値の貼り付け(PasteSpecial)|ExcelマクロVBA入門
9.CSVの読み込み方法|ExcelマクロVBAサンプル集
10.定数と型宣言文字(Const)|ExcelマクロVBA入門



  • >
  • >
  • >
  • Withステートメント

  • このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。


    記述には細心の注意をしたつもりですが、
    間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
    なお、掲載のVBAコードは自己責任で使ってください。万一データ破損等の損害が発生しても責任は負いません。




    ↑ PAGE TOP