オブジェクトって何?
メソッドって何?
このように思っている方は多いのではないでしょうか?
いざ、VBAの勉強を始めてみたけど聞きなれない用語が多すぎる。。
VBAの勉強を始めたころの僕も全く同じ悩みを抱えていました。
様々なサイトでサンプルコードが記載されているけど、オブジェクトとか、メソッドという用語が当たり前に使われていて読むことすら躊躇していました。
この記事では、オブジェクトとメソッドについて僕が当時知りたかったことをまとめました。
今、「オブジェクトとか、メソッドって何なの?」と疑問を抱いている方が
オブジェクトとメソッドについて知るきっかけとなれば幸いです!
①オブジェクトとメソッド
オブジェクトついて
僕は「オブジェクト」を、「操作対象」と捉えています。
「オブジェクト」とは、以下のようなものを指します。
・セル
・シート
・ブック(Excelのファイルそのもの)
どれもコピーしたり、削除したり、移動したり、「操作」できるものですよね。
なので、「オブジェクト」=「操作対象」と覚えておきましょう。
厳密にいえばオブジェクトはもっと細かく分類されるのでしょうが、このイメージで十分だと思います。
複数のオブジェクトをまとめて、「コレクション」と呼んだりしますがここでは省略します。
メソッドについて
僕は「メソッド」を、「オブジェクト(セルやシート)を操作するための指示」と捉えています。
「セルを選択する」とか、「セルをコピーする」とか、「セルを削除する」といったように「~する」という指示の部分が「メソッド」となります。
どういうことか、簡単なサンプルコードで解説します。
以下は、【A1セルを選択する】コードです。
イメージしやすいように、オブジェクトを青、メソッドを赤としてあります。
Range(“A1”).Select
End Sub
「Range(“A1”)」がオブジェクト、「.Select」がメソッドです。
「A1セル(オブジェクト)」を「選択する(メソッド)」といったイメージです。
このように「オブジェクト」と「メソッド」はセットで扱われます。
②覚えておくべきオブジェクト
「オブジェクト」とは、「操作対象」と解説してきました。
実際にマクロを使って操作する対象は「セル」・「シート」がほとんどだと思います。
ここでは、 「セル」・「シート」 それぞれのオブジェクトをVBAのコードで書くとどのような表記になるのか解説していきます。
Rangeオブジェクト
まずは「セル」を意味する、【Rangeオブジェクト】についてです。
先程のサンプルコードにも出てきましたね。
マクロでセルを操作する頻度はかなり高いので、Rangeオブジェクトは確実に押さえておきましょう。
Rangeオブジェクトは以下のように記載します。
「Range」を直訳すると、「範囲」という意味になります。
文字通り、「範囲 A1」と解釈すると、A1セルを表していることがイメージしやすいのではないでしょうか。
“A1″の部分を”B1″とすれば、B1セルを表すことになります。
「”」も必要なので、記載し忘れないように注意してください。
この形をそのまま、セルを意味する「Rangeオブジェクト」と覚えてしまいましょう。
Worksheetsオブジェクト
続いて「シート」を意味する、【Worksheetsオブジェクト】についてです。
シートをコピーしたり、削除したりと、シートを操作する際に使います。
Rangeオブジェクトと同様に、確実に押さえておきましょう。
Worksheetsオブジェクトは以下のように記載します。
「Worksheets」は、文字通り「シート」を意味します。
この場合は、「テスト」という名前のシートを表します。
“テスト”の部分を”本番”とすれば、「本番」という名前のシートを表すことになります。
「”」も必要なので、記載し忘れないように注意してください。
この形をそのまま、シートを意味する「WorkSheetsオブジェクト」と覚えてしまいましょう。
③覚えておくべきメソッド
「メソッド」とは、 「オブジェクト(セルやシート)を操作するための指示」と解説してきました。
実際にマクロを使って「セル」や「シート」に対して行う指示は、「選択」・「コピー」・「貼り付け」がほとんどだと思います。
ここでは、 「選択」・「コピー」・「貼り付け」 それぞれのメソッドをVBAのコードで書くとどのような表記になるのか解説していきます
Selectメソッド
まずは、「選択する」という指示を意味する「Selectメソッド」についてです。
先程のサンプルコードにも出てきましたね。
メソッドの中でも「Selectメソッド」の使用頻度はかなり高いと思います。
「Rangeオブジェクト」や「WorkSheetsオブジェクト」とセットで覚えてしまいましょう。
Selectメソッドは以下のように記載します。
「.Select」は文字通り、「選択する」という指示です。
この場合は、「A1セルを選択する」という意味になります。
「Range」の部分を「Worksheets」とすれば、「A1という名前のシートを選択する」という意味になります。
「.」も必要なので、記載し忘れないように注意してください。
この形をそのまま、セルやシートを選択する「Selectメソッド」と覚えてしまいましょう。
Copyメソッド
続いて、「コピーする」を意味する「Copyメソッド」についてです。
「Copyメソッド」も「Selectメソッド」と同様、使用頻度はかなり高いと思います。
「Rangeオブジェクト」や「WorkSheetsオブジェクト」とセットで覚えてしまいましょう。
Copyメソッドは以下のように記載します。
「.Copy」は文字通り、「コピーする」という指示です。
この場合は、「A1セルをコピーする」という意味になります。
「Range」の部分を「Worksheets」とすれば、「A1という名前のシートをコピーする」という意味になります。
「.」も必要なので、記載し忘れないように注意してください。
この形をそのまま、セルやシートをコピーする「Copyメソッド」と覚えてしまいましょう。
既にお察しかもしれませんが、「.Cut」で「切り取りする」という指示です。
PasteSpecialメソッド
続いて、「貼り付けする」を意味する「PasteSpecialメソッド」についてです。
「PasteSpecialメソッド」 は「Copyメソッド」とセットで使うことがほとんどです。
「コピーした値を貼り付ける」という流れが自然ですよね。
「Copyメソッド」と「PasteSpecialメソッド」 は セットで覚えておきましょう。
「PasteSpecialメソッド」は以下のように記載します。
Range(”A2”).PasteSpecial
「.PasteSpecial」は「貼り付けする」という指示になります。
この場合は、「A1セルをコピー」して、「A2セルに貼り付ける」という意味になります。
「.」も必要なので、記載し忘れないように注意してください。
この形をそのまま、セルをコピーして貼り付ける「PasteSpecialメソッド」と覚えてしまいましょう。
もちろん、「.Cutメソッド」で切り取ったセルを貼り付けることも可能です。
「Selectメソッド」や「Copyメソッド」と違い、「Range」の部分を「Worksheets」としても、シートをコピーすることはできませんので注意が必要です。
シートのコピーについては、別の記事で詳しく解説したいと思います。
④まとめ
セルや、シートなどの「操作対象」
メソッドとは、
「オブジェクト(セルやシート)を操作するための指示」
この記事では、オブジェクトとメソッドについて解説しました。