2019.06.15この記事は約6分で読めます。プログラミング初心者向けのVBA入門講座第8回です。前回、前々回でオブジェクト式について紹介してきました。→過去の入門講座目次はこちら今回はそのオブジェクト式を実際に使ってみましょう。実際にVBAを記述して動かしてみることでより理解が深まると思います。目次イミディエイトウィンドウイミディエイトウィンドウの表示イミディエイトウィンドウを使ってみるオブジェクト式の実習オブジェクト.プロパティオブジェクト.メソッドオブジェクトの階層構造まとめイミディエイトウィンドウオブジェクト式を使う前にVBEの機能のひとつであるイミディエイトウィンドウについて紹介します。イミディエイトウィンドウではプロシージャを記述することなく1行のマクロを簡単にテストすることができます。プロシージャから実行途中の情報をイミディエイトウィンドウに出力することもできます。VBAを作成するうえで便利なウィンドウなので常に表示させておくことをおすすめします。イミディエイトウィンドウの表示VBEの「表示」メニューから「イミディエイトウィンドウ」を選択することで表示できます。イミディエイトウィンドウはコードウィンドウの下側にドッキングしていますがタイトルバーをドラッグすることでウィンドウを独立することもできます。独立したウィンドウのタイトルバーをダブルクリックすると再びコードウィンドウの下にドッキングします。ウィンドウの境界をドラッグすることでウィンドウの大きさを変えることができます。イミディエイトウィンドウを使ってみるそれではイミディエイトウィンドウに次の1行を入力してEnterキーを押してみてください。“Hello”メッセージボックスが表示されたと思います。このように1行だけのマクロを簡単にテストすることができます。この機能を使ってオブジェクト式を実行してみましょう。ちなみにイミディエイトウィンドウではプログラム命令文の大文字、小文字は区別されません。すべて小文字で入力してもコードウィンドウのように自動で変換はされませんが小文字のままでも問題なく動作します。オブジェクト式の実習オブジェクト.プロパティイミディエイトウィンドウに次のコードを入力してEnterキーで実行してみてください。123セルA1に値が入力されたのが確認できますね。値のオブジェクト式です。ここでの「=」は代入演算子なので右辺の値を左辺に代入するという意味です。「123」という値をセルA1の値に代入した、ということです。プロパティは指定されたセル範囲の値の設定および取得ができるプロパティです。(今の事例では「123」という値を設定しました)では設定した値を取得してみましょう。次のコードを実行してみてください。range(“A1”).valueメッセージボックスに「123」という値が表示されましたね。これはValueプロパティで取得した値をメッセージボックスに表示したことを意味します。次のコードを実行してみましょう。range(“A1”).valueセルB1に「123」が入力されましたか?これは右辺でセルA1の値を取得し、その値を左辺のセルB1の値に代入して設定したことを意味します。ここでは右辺のValueプロパティは値を取得を、左辺のValueプロパティは値の設定を行いましたなお値に文字列を設定するときは「“(ダブルクォーテーション)」で囲います。“abc”また複数のセル範囲に一度に値を設定することもできます。1オブジェクト.メソッドそれではワークシートが3つ(例えば”Sheet1′′,”Sheet2′′,”Sheet3′′)ある状態から次のコードを実行してみてください。after:=worksheets(2)ワークシートの左から3番目に新しいワークシートが挿入されましたね。オブジェクトとしてワークシートの集合体であるWorksheetsコレクションが指定され、シートを追加するAddメソッドが実行されています。Addメソッドの引数のAfterは追加したシートの挿入位置を指定するための引数で、値で指定されたシートの後ろ(右側)に挿入します。ここではWorksheetsコレクションのインデックス番号2(左側から2番目のシート)の後ろ(右側)を挿入位置として指定しています。オブジェクトの階層構造それでは次は標準モジュールのコードウィンドウにプロシージャを記述してみましょう。“Sheet1′′をアクティブにした状態で次のプロシージャを実行してみてください。Subどうなりましたか?Sheet1のセルA1に「10」が入力され、新たに追加されたワークシートのセルA2に「11」が入力されていると思います。Addメソッドで引数を省略するとアクティブなシートの左側に新しいシートが挿入されます。これはセルのRangeオブジェクトの上位オブジェクト(親のオブジェクト)であるWorksheetオブジェクトの記述を省略したため、そのときアクティブなワークシートが指定されたためです。最初はSheet1がアクティブになっていたのでSheet1のセルA1に値が代入されました。次にWorksheets.Addによって新しいワークシートが挿入されると新しく挿入されたワークシートがアクティブな状態になります。そのため次のRange(“A2”).Valueはそのときにアクティブになっている新しいワークシートのセルA2が指定されたことになったのです。このようにマクロを実行している最中にアクティブなオブジェクトが変化すると省略された上位オブジェクトの意味も変わってくるので注意が必要です。上位オブジェクトを省略せずに記述することでこのような影響を避けることができます。Subこのコードでもブックオブジェクトの記述を省略しています。ここで新しいブックを開いたりすればアクティブなブックが変化します。そのように複数のブックを取り扱うときはブックオブジェクトもきちんと記述したほうがよいでしょう。まとめいかがでしたか?イミディエイトウィンドウを使えば簡単にオブジェクト式をテストすることができるので、いろいろなオブジェクト式を試してみてください。【ゼロからわかるVBA入門】文字列を扱う関数(1)プログラミング初心者向けのVBA入門講座第17回です。前回に引き続きよく使われる関数を紹介します。今回は文字列を操作するための関数です。ステートメントプログラミング初心者向けのVBA入門講座第11回です。ステートメントについて紹介しました。【ゼロからわかるVBA入門】マクロ、VBAとは?この講座は【ゼロからわかるVBA入門】と題し、その名の通り「VBAって何?」「マクロって実はなんのことかわからない」という人に向けて、知識ゼロのプログラミング初心者でも簡単にはじめられるように初歩から丁寧に説明していきます。【ゼロからわかるVBA入門】日付や時刻を扱う関数プログラミング初心者向けのVBA入門講座第16回です。前回の講座でVBAの関数についての基本を紹介しました。今回からいくつかよく使われる関数を紹介していきます。【ゼロからわかるVBA入門】変数についてプログラミング初心者向けのVBA入門講座第9回です。今回はVBAに限らずプログラミングにおいて重要な要素のひとつである変数について紹介します。【ゼロからわかるVBA入門】VBA関数プログラミング初心者向けのVBA入門講座第15回です。いままでの講座でVBAの基本構文であるオブジェクト式とステートメントについて紹介してきました。コメントをキャンセルメールアドレスが公開されることはありません。*サイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。ツール作成、メンテナンスをしています。このブログではVBA関連を中心に初心者にもわかりやすい解説や技術情報を発信していきます。ツール作成、メンテナンスをしています。このブログではVBA関連を中心に初心者にもわかりやすい解説や技術情報を発信していきます。人気記事VBAでPDF出力をする方法(ExportAsFixedFormatメソッド)2019.10.02VBAで今日の日付を検索する方法2019.07.17選択セルの行と列をハイライト表示する方法2019.06.072019.07.03【VBAでフォルダ/ファイル操作】(3)すべての下位フォルダ内のファイルを操作する2019.08.07【Excel】更新プログラム未対応で令和表示にする2019.05.092019.06.27タイトルとURLをコピーしました。