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

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

WinスクールにはVBAの講座が5つ用意されています

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

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

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

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つ用意してください。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

具体的に書くと以下のようにコードを書く際次に何を書けばよいのか分かる様になってきます。

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

この積み重ねでコードが書ける様になります。

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

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

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

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

理解出来なくても心配しないでください

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

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

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

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

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

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

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

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

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

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

まとめ

オブジェクト、プロパティ、メソッドの話は私自身かなり理解は進んだと思っています。

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

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

Enjoy Excel

各オブジェクトが持っているプロパティ、メソッドをすべて暗記しているわけではないです。

使い方も分からない要素は沢山あります。この先も全部覚えるのは無理でしょう。

分からない時はオブジェクトブラウザーで確認しましょう。(VBEでF2キーを押下)

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

この一連の確認作業が出来るようになってくるとより理解が進むという感じでサイクルがまわってきます。

勉強初期のステージでもやれることはあります。

知識が不完全で自分の中でしっくりこない時期があってもまずは前に進むことを考えましょう。

いつかは理解出来る時が来ます。ではメッセージボックスとIF文の説明に進みましょう。

参考:関連記事

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

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

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