VBA-10メソッドはオブジェクトの直後に書く状況により引数を指定

お知らせ記事には広告が含まれておりますがExcelのスキルUPに繋がる様コンテンツ自体は手を抜かずに作成しております

メソッドを含めオブジェクト、プロパティ、の解説もしていきます

今回はメソッドの話をしていきます。本記事を読むとメソッドについての理解が進みます

最終的に機能を含めた理屈を解説しますが最初は難しいのでまずは見た目から入ってみます。

EnjoyExcel
EnjoyExcel

メソッドはオブジェクトの直下に配置されます。

メソッドはオブジェクトやプロパティに直接命令を出す事が出来ます

直接命令・・・といわれてもイメージがわかないですね。

理屈を考える前にまずは見た目(配置)でメソッドをとらえることにします。

その後はワークブックを使ってオブジェクト、プロパティ、メソッドの違いを考えてみる事にします。

3つの要素を横並びで見る事で違いを理解しやすい様にしています。

前回の記事

前回は罫線を引くのと実行用のボタンの作り方を紹介しています。

本記事での課題

今回の課題です。難しいので弱めに設定します。

EnjoyExcel
EnjoyExcel
課題

メソッドをやんわり理解しよう

初心者向けエクセルマクロ学習シリーズ

メソッドについて

メソッドというのはオブジェクト(プロパティ)に対して命令を出す時に使う要素です。

セルの値を削除やコピー&ペーストがメソッドの一員です。

オブジェクト、プロパティ同様かなりたくさんあるので覚えなくてもよいです。

使いながら覚えていくというのが良いです。以前も書きましたが「習うより慣れろ」です。

使い方:建付け

まずは配置で覚えましょう

使い方は「オブジェクト.メソッド」という感じでドットの後にメソッドを置くといったかたちです。

例えば「クリア」というメソッドでは以下のような使い方をします。

Clearメソッドの具体例
  • Range(“A1”).Clear Contents   ’セルの内容のみクリア
  • Range(“A1”).Clear   ’セルの内容と書式をクリア
  • Range(“A1”).ClearFormats   ’セルの書式のみクリア

オブジェクトの直下にきてますね。単にクリアだけでもいろんなメソッドが居ます。

次に「コピー&ペースト」の形式を選択して貼り付けの中から「値貼付け」を紹介します。

コピー&ペーストの具体例(値貼付け)
  • Range(“A1”).Copy
  • Range(“B1”).PasteSpecial xlPasteValues

オブジェクトの後にメソッドですね。最後に「コピー&ペーストと「カット&ペースト」です。

コピペとカット&ペーストの具体例
  • Range(“A1”).Copy Range(“B1”)   ’A1の値をコピーしてB1に貼付け
  • Range(“A1”).Cut Range(“B1”)   ’A1の値をカットしてB1に貼付け

上記とはちょっと違う書き方ですね。

でも基本は同じでオブジェクトの直下にメソッドがきたあとにコピー先を指示しています。

見ていただいても分かる様にメソッドは直接オブジェクト(プロパティ)に対して指示を出します。

メソッドはイコールを使いません

オブジェクトやプロパティに値を代入する時は「=」を使っていました。

オブジェクトは属性を持つことが出来ます。この属性がプロパティです。

プロパティを書き換える時には=を使って値を代入します。

代わってオブジェクト自体を操作したい時はオブジェクトの直下にメソッドを書いて指示をします。

配置や使い方はある程度分かりました。

次はワークブックを使ってオブジェクト、プロパティ、メソッドの違いを考えてみる事にします。

3つの要素をセットで考えるとより理解が進む為です。

Excelブックを使ってオブジェクト、プロパティ、メソッドの違いを認識

多くの人に馴染みがありそうな事例を使ってオブジェクト、プロパティ、メソッドをイメージしてみましょう。

デスクトップに表示されたワークブックを使います。あくまでイメージですので分からない方は飛ばしてください。

ワークブック(オブジェクト)をもとにプロパティを考える

デスクトップ上にExcelデータを1つ用意してください。

ファイルの上で右クリックをするとプロパティを見ることが出来ます。

見たことある画面だと思います。(一部ぼかしを入れています)

ここで表示されているのがこのデータのプロパティ(属性)です。

つまりこのワークブック自身の属性が書かれています。

更新日やアクセス日時は使用に応じて情報が変わっていきます。ファイルサイズも変わりますね。

これを言い換えるとファイルの状態に応じてtest.xlsxの「属性を書き換える」という作業をしています。

VBAでプロパティへ値を代入する時もこれと同じことをしています。

ワークブック(オブジェクト)をもとにメソッドを考える

一方でこのWorkBook自体をコピーしたい時、削除したい時に行う操作を考えてみます。

以下はBookをコピーする時の操作です。

画像ではコピーのアイコンを選択しています。コピーする際はプロパティを操作してないですよね。

よってメソッドはプロパティとは別物だという事がイメージできますね。

メソッドはプロパティのようにオブジェクトの状態を書き換える作業ではないです。

対象物に対して直接操作を指示しています。ここでの対象物はWorkbookオブジェクトです。

Workbook自体をコピーしたり削除する時に属性は必要ないという事も言えます。

プロパティとメソッドの違いをワークブックの情報を使って説明してみました。

3つの機能を理解するとコードが書けるようになる

オブジェクトとプロパティ、メソッドの関係がイメージできてくると以下の様にコードが書ける様になってきます。

  • オブジェクトに対する属性を変えたい時はオブジェクトの後にイコールで値を代入
  • オブジェクト自体をコピーしたり削除したい時はオブジェクトのあとはドットを書いてメソッドを書く

最初はこんな感じでコードを書いていくと次第に意味が分かってきます。この積み重ねでコードが書ける様になります。

裏を返せばここが分からないとずっとコードを暗記することになります

理解度50%程度を目指して進める

ワークブックを使ってオブジェクト、プロパティ、メソッドの差を説明してみました。

それぞれの違いと役割を理解する事が出来たでしょうか。

1回読んだだけでは理解するのは難しいです。よってこの時点では理解出来なくても心配しないでください

最初はオブジェクト?プロパティ?メソッド?という状態だと思います。

でもこれは当然の事です。すぐには分からないと思います。

私はコードを書いて実行して画面の動きを見ながら色々試した結果後付けで理解しました。

分からない時は飛ばして次を勉強する

繰り返しますが勉強初期は理解出来なくても良いです。

コピーするときやデータを消すときは上記のようにオブジェクトの直下にメソッドを書きましょう。

メソッドによってデータをコピー出来たりデータを消せるんだなと思ってまずは使ってみてください。

勉強が進んでくると断片的な知識が繋がってふと分かる時が来ます。

VBAの勉強は少々分からない事があっても突き進んだ方が良いです。

後で知識が繋がり分かる様になることが多いからです。

まとめ

オブジェクト、プロパティ、メソッドの話は奥が深いです。全部暗記しているかと言われると「No」です。

完全に理解してすべて説明できるかと言われると自信もって「Yes」とは言えません。

本日勉強したこと
  1. メソッドを使ってみた
  2. メソッドは=を使わない
  3. 分からなくても使ってみる事が重要
理屈は後付けでもOK

Enjoy Excel

結論としては各オブジェクトが持っているプロパティ、メソッドをすべて暗記する事はできないと思ってください。

使い方も分からない要素は沢山ありますし使わない要素は覚えても意味が無いので暗記は絶対にやめてください。

分からない時は都度調べればOKです。確認する際はオブジェクトブラウザーを使いましょう。(VBEでF2キーを押下)

加えてコードを書いて動かしてみることでどんな結果になるのか確認しながら使えば良いです。

この一連の確認作業が出来るようになってくるとより理解が進みます。

最初は非常に手間がかかり面倒だなと感じる事も多いのですが根気よく作業を進めてください。

まずは手を動かしましょう。知識が不完全で自分の中でしっくりこない時期があっても良いです。気にしないでください。

まずは前に進むことを考えましょう。徐々に理解できる様になります。

参考:関連記事

本シリーズはこちらの記事とも連携しています。

マクロ勉強の道筋マクロは何から勉強するのか|学習をサポートするためのロードマップを作成

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