[三流君] −−> [VBAで楽しく] −−> [バックナンバー一覧]
−−> No.036 オブジェクトのプロパティについて

オブジェクトのプロパティについて

メルマガ発行内容

<オブジェクトのプロパティについて>

こんにちは、三流プログラマーKen3です。 今回は、 オブジェクトのプロパティについて について軽く書きたいと思います。 気楽に読んでください。 /* * 1. オブジェクトのプロパティとメソッド */ オブジェクトのプロパティとメソッド なんて言われてもなぁ、、、なんかピンとこないんだよね正直。 前回やった、イベント処理は、 イベントに対応する処理を書くんだよ、、とイメージはなんとなくわかったけど。 ( 詳細は、/vba/backno/vba035.html の、[No.35 イベント処理について]を参照 ) プロパティはオブジェクトの値や状態を取得したりセットしたり で メソッドは追加や削除、コピーなどの動作なんですよ。 はぁ?何いってんのかよくわかんねえよ。 例題出してくれよ例題。 例題と言われてもなぁ、、、 -- 余談 メールもらいました -- In message "無駄なんだよ", 183さん wrote... >>まず、ALT+F11でVBAの編集画面を出します。 >Sheetを右クリック コードの表示 -- 初め何言ってんだコイツ? と思ったけど、やってみると、私が説明した下記より簡単だった。 In message "[VBAで楽しく No.035] - イベント処理について", >まず、ALT+F11でVBAの編集画面を出します。 > >次に、Sheet2のイベントを記述したいので、 >プロジェクトの中から、 >Microsoft Excelオブジェクト > Sheet1 > Sheet2 ←を選択、右クリックします。 > Sheet3 > >コードの表示を選択します。(Sheet2をダブルクリックでもOK) >白紙のモジュールを記述する画面が表示されます。 > >次は、Worksheetのオブジェクトを選択します。 >選択すると、勝手に >Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range) > >End Sub と前回説明してたけど、 画面下でシートを切り替えますよね、 そこで右クリック押すと 挿入、削除、、、 一番下にコードの表示ってあって、これを選択すると、同じ動作ができます。 おっ、手数が1手少なく出きるので、 シートを右クリック -- コード表示もありですね。 *Alt+F11をクセにしてもいいし(私がなっているだけ?) /* * 2.プロパティで値を参照 Rangeオブジェクトの.Address */ プロパティはオブジェクトの値や状態を取得したりセットしたり と言ってたよね。 はい、言ってましたよ。 イメージは、オブジェクトってのは、いろいろな値を持っているんですよ。 例えば、Rangeって便利なオブジェクトには、 .Addressってあって、どのアドレスのデータなのか値を持っています。 セルの選択位置が変わると発生する Worksheet_SelectionChangeイベントに下記のように書いてみます。 *Sheetを選択、右クリック、コードの表示でVBA編集へ行き Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range) '.Addressプロパティの値をセルの2,2(B2)にセット Cells(2, 2) = Target.Address End Sub これは、何やってるか。 簡単に説明すると、Target.Addressの値を行2列2(B2)にセットしてます。 これが、値の取得です。 ポイントは、オブジェクト.プロパティで値を参照してます。 Address プロパティ Range オブジェクトを対象にして、マクロの言語の範囲参照を返します。 値の取得のみ可能です。文字列型 (String) の値を使用します。 サンプルファイルは、 http://www.ken3.org/vba/lzh/vba036.lzh に test036-book.xlsが保存されています。 クリックして、遊んでくださいね。 /* * 3.プロパティに値をセットする(値を変更する) */ プロパティはオブジェクトの値や状態を取得したりセットしたり と、取得は上で軽くやったから、 今度はセットですね。 せっかくだから、ダブルクリックのイベント処理で、 ダブルクリックされたら"TEST"の文字をセットします。 _BeforeDoubleClickのイベントを記述します (VBAの編集画面で選択します) Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Excel.Range, Cancel As Boolean) 'TESTの文字をセットする Target.Value = "TEST" 'おまけで、.Font.Bold で太字を切りかえる If Target.Font.Bold = True Then Target.Font.Bold = False Else Target.Font.Bold = True End If End Sub Worksheet_BeforeDoubleClickのイベントで、 対象となるByVal Target As Excel.Range で渡されたTargetに対して、 .Value 値に"TEST"と文字列をセットしてます。 *ただ、ダブルクリックされたセルにセットしただけです。 次は、取得とセットもできるんですよの例で、 'おまけで、.Font.Bold で太字を切りかえる If Target.Font.Bold = True Then Target.Font.Bold = False Else Target.Font.Bold = True End If これは、ターゲットのフォントが太字だったら(Target.Font.Bold = True) Target.Font.Bold = False と太字を解除してます。 *ON/OFFの切り替えみたいな感じです。 .Bold プロパティ True の場合、フォントを太字にします。 値の取得および設定ともに可能です。バリアント型 (Variant) の値を使用します。 /* * 4.値の取得のみ可能/値の取得および設定ともに可能です */ プロパティには、 値の取得のみ可能 値の取得および設定ともに可能 と2パターンあります。 Target.Address は、 オブジェクトの参照しているアドレスなので、取得のみ可能。 まぁダブルクリックされたアドレスなんだから、 取得のみだよっていわれれば、なんとなくはわかるけど。。。 Target.Font.Bold は、 フォントの太字状態を参照するのと、 プログラムで値をセットして状態を変化させることができました。 ターゲットの状態は? と値を見て(取得して)、変化(新しい値を代入)することができました。 まぁ、これも慣れだし、 .XXXXXプロパティによって違うのも、 あっ、これは内容的に取得のみだな、取得と設定可能だな、、、 とわかるように自然になると思います。 /* * 5.終わりの挨拶 */ 今回は、 ・オブジェクトのプロパティ ・プロパティの値の取得 ・プロパティに値をセット でした。 サンプルファイルは、 http://www.ken3.org/vba/lzh/vba036.lzh に test036-book.xlsが保存されています。 クリックしたり、ダブルクリックで遊んでくださいね。 拾い読みして、 1つでも何かの参考となれば幸いです。 Excel/Access大好き、三流プログラマーKen3でした。


ページフッター

ここまで、読んでいただきどうもです。ここから下は、三流君のホームページの紹介・案内です
目的の情報が見つかったか?少々心配しつつ、、、

種類別のリンク や 広告など

気になったジャンル↓を選択してください。

人気記事(来場者が多いTOP3):
[VBAでIE,WebBrowserを操作]・・・VBAでIE,WebBrowserを操作する サンプルです
[Access から Excel 連携 CreateObject("Excel.Application")]・・・AccessからExcelを操作したりデータの書き出しなどです
[VBAでOutlookの操作 CreateObject("Outlook.Application" )]・・・VBAからOutlookを使い、メール関係を処理するサンプルです
↑上記3つみたいなCreateObjectで他のアプリケーションを操作するサンプルが人気です。

Excel関係:
[Excel UserFormを操作する]・・・エクセルでユーザーフォームを作成して入力などを行ってます
[ExcelからAccessを操作する]・・・ExcelからAccessのマクロを起動してみました、
[Excel関係 関数、その他]・・・その他Excel関係です

Access関係:
[Access UserForm/サブフォーム 操作]・・・アクセスでフォームを使ったサンプルです
[Access レポート操作]・・・レポートを操作してみました
[Access クエリーやその他関数]・・・あまりまとまってませんが、スポット的な単体関数の解説です

その他:VBAの共通関数やテキストファイルの操作など
[VBAでテキストファイル(TextFile)の操作]・・・普通のテキストファイルを使ったサンプルです
[VBA 標準関数関係とその他解説]・・・その他、グダグタ解説してます

開発時の操作: [F1を押してHELPを見る]/ [Debug.Print と イミディエイトウインドウ]/ [実行時エラーでデバッグ]/ [ウォッチ式とSTOP]/ [参照設定を行う]

仕様書(設計書?) XXXX書類: [基本設計書や要求仕様書]/ [テスト仕様書 テストデータ]/ [バグ票]/ [関数仕様書]/ [流れは 入力・処理・出力]

※↑文章の味付けが変わっていて、お口に合うかわかりませんが。。。
※※読んで、気分を悪くされたらスミマセン。

Blogとリンク:[三流君の作業日記]/ [VBAやASPのサンプルコード]/ 広告-[通販人気商品の足跡]



[三流君(TOP ken3.org へ戻る)] / [VBA系TOPへ] / [VBA系バックナンバー目次へ移動]