発展1講座第1章 - 固有オブジェクト型

この講座は有料講座です。
講座の購入後ご覧になれます。

ログインアカウントの新規作成

解説

固有オブジェクト型について説明します。
総称オブジェクト型 As Object は、セル、シート、ファイル、図形など、どんなオブジェクトにも使えます。それに対し固有オブジェクト型は、より細かいオブジェクトの指定ができます。As Range で作った変数は、セルに対してニックネームを使用することができますが、セル以外のオブジェクトに対して使用しようとするとエラーが出ます。

この教材についての過去の質問・感想

11246 : 小川慶一の回答 (2019-03-11 11:37:30)

morimotoさん:

お役に立てているようならうれしいです。

「オブジェクト型変数」はちょっと抽象的な概念ですし、捉えにくいですよね。
ここのところの体系的な説明は、案外難しいだろうなと思います。僕も、独学していた当時、理解できなくて苦労しました。

ひきつづきお楽しみください☆



> 総称、固有オブジェクトのメリット等説明している市販の本は見当たりません。勝手にdim A,,,, set A ,,,,と始められて何やってんのかわかりませんでした。いっぽい地味にworksheets("sheet1").,,,,,worksheets("sheets2")....と打ってましたが、今後はsetを使ってやってみます。
> ほんとうにこの講座はつかみやすいのでやりやすいです。


11238 : morimotoさんのコメント (2019-03-10 21:02:14)

総称、固有オブジェクトのメリット等説明している市販の本は見当たりません。勝手にdim A,,,, set A ,,,,と始められて何やってんのかわかりませんでした。いっぽい地味にworksheets("sheet1").,,,,,worksheets("sheets2")....と打ってましたが、今後はsetを使ってやってみます。
ほんとうにこの講座はつかみやすいのでやりやすいです。


10355 : 小川慶一の回答 (2018-08-09 13:03:39)

受講生 さん:

このメリットはかなりデカいです☆

> 固有オブジェクト型にするメリット
> ・ピリオドを入力すると候補がでてくる。
>  (自動メンバ表示機能が使える。)
> →書き間違いが減る


10339 : 受講生さんのコメント (2018-08-08 12:52:01)

固有オブジェクト型にするメリット
・ピリオドを入力すると候補がでてくる。
 (自動メンバ表示機能が使える。)
→書き間違いが減る


4838 : 小川慶一の回答 (2015-08-11 10:04:23)

虫谷吉男 さん:

一見小さいメリットですけどね。
こういうところで活用できる小技の蓄積も全体的な生産性向上に大きく関係します。


>総称オブジェクト型ではなく固有オブジェクト型を使用することにより、自動メンバ機能が使えることがメリットなんですね。勉強になりました。


4814 : 虫谷吉男さんのコメント (2015-08-08 16:50:22)

総称オブジェクト型ではなく固有オブジェクト型を使用することにより、自動メンバ機能が使えることがメリットなんですね。勉強になりました。


3879 : 小川慶一の回答 (2015-02-21 05:51:01)

ゲスト さん:

ますますおもしろくなっていきますよ!
お楽しみに!

>小川先生:
>
>やはり上級レベルになるとojbectを使う必要というものが出てくる可能性があるのですね。
>総称オブジェクトの使い方、とても参考になりました!
>ありがとうございました。


3873 : 宮下 郁子さんのコメント (2015-02-19 13:30:44)

小川先生:

やはり上級レベルになるとojbectを使う必要というものが出てくる可能性があるのですね。
総称オブジェクトの使い方、とても参考になりました!
ありがとうございました。


>ゲスト さん:
>
>>逆に総称オブジェクトを使うメリットってあるのでしょうか?
>>もっと上級編になったらそれを使うメリットなどが出てくるのでしょうか?
>
>以下の3つの場合かな、と思います。
>
>[1] オブジェクトのデータ型が分からないとき
>[2] 条件分岐などがあり、本当に何がその変数によって参照設定されるか分からない場合
>[3] 仕様書やネットにある情報のとおりに変数宣言してもすんなり片付かないとき
>
>
>[1] オブジェクトのデータ型が分からないとき
>
>でも、そういうときも、僕の場合は、最終的にはソースから As Object で宣言する箇所は極力なくすようにしています。
>
>具体的には、以下の要領。
>
>

Dim hoge As Object
>'...
>Set hoge = xxx

>
>のあと、
>
>
Debug.Print Typename(hoge)

>
>を入れてマクロを実行。
>すると、イミディエイトウィンドウに出力された文字列から、変数 hoge で参照設定されたオブジェクトのデータ型が分かります。
>宣言部分での「Object」という表記をその文字列に置き換えます。
>
>[2] 条件分岐などがあり、本当に何がその変数によって参照設定されるか分からない場合
>
>これは仕方ないですね。
>
>[3] 仕様書やネットにある情報のとおりに変数宣言してもすんなり片付かないとき
>
>「外部連携」や「Web連携」の講座に進んで見慣れないライブラリへの参照設定とかをすると、OSやエクセル、読み込んだライブラリのバージョンにより、仕様書やネットにある情報のとおりに変数宣言してもすんなり片付かないことがあります。
>そういうとき、逃げの手段として As Object と表記してしのいだりします。
>
>
>
>
>>固有オブジェクトのメリットがよくわかり勉強になりました。
>>逆に総称オブジェクトを使うメリットってあるのでしょうか?
>>もっと上級編になったらそれを使うメリットなどが出てくるのでしょうか?
>


3869 : 小川慶一の回答 (2015-02-19 08:49:12)

ゲスト さん:

>逆に総称オブジェクトを使うメリットってあるのでしょうか?
>もっと上級編になったらそれを使うメリットなどが出てくるのでしょうか?

以下の3つの場合かな、と思います。

[1] オブジェクトのデータ型が分からないとき
[2] 条件分岐などがあり、本当に何がその変数によって参照設定されるか分からない場合
[3] 仕様書やネットにある情報のとおりに変数宣言してもすんなり片付かないとき


[1] オブジェクトのデータ型が分からないとき

でも、そういうときも、僕の場合は、最終的にはソースから As Object で宣言する箇所は極力なくすようにしています。

具体的には、以下の要領。

Dim hoge As Object
'...
Set hoge = xxx


のあと、

Debug.Print Typename(hoge)


を入れてマクロを実行。
すると、イミディエイトウィンドウに出力された文字列から、変数 hoge で参照設定されたオブジェクトのデータ型が分かります。
宣言部分での「Object」という表記をその文字列に置き換えます。

[2] 条件分岐などがあり、本当に何がその変数によって参照設定されるか分からない場合

これは仕方ないですね。

[3] 仕様書やネットにある情報のとおりに変数宣言してもすんなり片付かないとき

「外部連携」や「Web連携」の講座に進んで見慣れないライブラリへの参照設定とかをすると、OSやエクセル、読み込んだライブラリのバージョンにより、仕様書やネットにある情報のとおりに変数宣言してもすんなり片付かないことがあります。
そういうとき、逃げの手段として As Object と表記してしのいだりします。




>固有オブジェクトのメリットがよくわかり勉強になりました。
>逆に総称オブジェクトを使うメリットってあるのでしょうか?
>もっと上級編になったらそれを使うメリットなどが出てくるのでしょうか?


3859 : 宮下 郁子さんのコメント (2015-02-17 08:21:39)

固有オブジェクトのメリットがよくわかり勉強になりました。
逆に総称オブジェクトを使うメリットってあるのでしょうか?
もっと上級編になったらそれを使うメリットなどが出てくるのでしょうか?


2678 : 小川慶一の回答 (2014-10-09 07:04:55)

匿名 さん:

型は極力明示したほうがパフォーマンスあがります。


>固有オブジェクト型を使う事で、単にリストが表示されるだけでなく、
>メンテナンス性も上がりそうですね。
>大規模なシステムにあんると、
>あえて固有オブジェクト型を使う方が実行速度も上がったりするのでしょうか?
>
>とりあえず、積極的に利用するようにします!


2667 : 受講生さんのコメント (2014-10-06 22:44:07)

固有オブジェクト型を使う事で、単にリストが表示されるだけでなく、
メンテナンス性も上がりそうですね。
大規模なシステムにあんると、
あえて固有オブジェクト型を使う方が実行速度も上がったりするのでしょうか?

とりあえず、積極的に利用するようにします!


2024 : 小川慶一の回答 (2014-08-21 04:33:49)

匿名 さん:

変数の宣言はなるべく specific に行うのが望ましいです。
ひきつづきお楽しみを☆

>総称オブジェクトと固有オブジェクトの違い、理解できました。これからは固有オブジェクトを使うようにします。


2018 : 受講生さんのコメント (2014-08-20 16:39:25)

総称オブジェクトと固有オブジェクトの違い、理解できました。これからは固有オブジェクトを使うようにします。


1090 : 小川慶一の回答 (2014-04-05 08:02:55)

薄木洋祐 さん:

たくさんあるようで、案外そんなに多くもないです。
あと、最初は、ムリに覚えなくても、mindmapを手元に置いていつでも参照できる状態にしておくだけでも十分ですよ。使っているうちに自然に覚えます (^


1089 : 薄木洋祐さんのコメント (2014-04-04 20:03:39)

たくそんあるのを覚えて行きたいです!ひさすら反復します!


3日がかりのその仕事、3分で終わらせる方法教えます。ガラパゴスタディーオンライン講座 ユーザー登録

本講座の動画一覧

  1. 【動画1】 発展1講座イントロダクション - 使用するファイル、PDFの確認
    【動画1】 発展1講座イントロダクション - 使用するファイル、PDFの確認 未習得
  2. 【動画2】 発展1講座イントロダクション - デバッグ イミディエイトウィンド
    【動画2】 発展1講座イントロダクション - デバッグ イミディエイトウィンド 未習得
  3. 【動画3】 発展1講座第1章 - オープニング 第1章1
    【動画3】 発展1講座第1章 - オープニング 第1章1 未習得
  4. 【動画4】 発展1講座第1章 - オープニング 第1章2
    【動画4】 発展1講座第1章 - オープニング 第1章2 未習得
  5. 【動画5】 発展1講座第1章 - データの「型」1
    【動画5】 発展1講座第1章 - データの「型」1 未習得
  6. 【動画6】 発展1講座第1章 - データの「型」2
    【動画6】 発展1講座第1章 - データの「型」2 未習得
  7. 【動画7】 発展1講座第1章 - 変数の初期値
    【動画7】 発展1講座第1章 - 変数の初期値 未習得
  8. 【動画8】 発展1講座第1章 - ハンガリアン記法
    【動画8】 発展1講座第1章 - ハンガリアン記法 未習得
  9. 【動画9】 発展1講座第1章 - 変数宣言の強制1
    【動画9】 発展1講座第1章 - 変数宣言の強制1 未習得
  10. 【動画10】 発展1講座第1章 - 変数宣言の強制2
    【動画10】 発展1講座第1章 - 変数宣言の強制2 未習得
  11. 【動画11】 発展1講座第1章 - 総称オブジェクト型
    【動画11】 発展1講座第1章 - 総称オブジェクト型 未習得
  12. 【動画12】 発展1講座第1章 - 固有オブジェクト型
    【動画12】 発展1講座第1章 - 固有オブジェクト型 未習得
  13. 【動画13】 発展1講座第1章 - バリアント型
    【動画13】 発展1講座第1章 - バリアント型 未習得
  14. 【動画14】 発展1講座第2章 - オープニング 第2章
    【動画14】 発展1講座第2章 - オープニング 第2章 未習得
  15. 【動画15】 発展1講座第2章 - コレクション
    【動画15】 発展1講座第2章 - コレクション 未習得
  16. 【動画16】 発展1講座第2章 - コレクション(インデックス)
    【動画16】 発展1講座第2章 - コレクション(インデックス) 未習得
  17. 【動画17】 発展1講座第2章 - コレクション(インデックス)の具体例
    【動画17】 発展1講座第2章 - コレクション(インデックス)の具体例 未習得
  18. 【動画18】 発展1講座第2章 - プロパティ 従属要素のオブジェクト
    【動画18】 発展1講座第2章 - プロパティ 従属要素のオブジェクト 未習得
  19. 【動画19】 発展1講座第2章 - プロパティ 上位のオブジェクト
    【動画19】 発展1講座第2章 - プロパティ 上位のオブジェクト 未習得
  20. 【動画20】 発展1講座第2章 - プロパティ 同レベルのオブジェクト
    【動画20】 発展1講座第2章 - プロパティ 同レベルのオブジェクト 未習得
  21. 【動画21】 発展1講座第2章 - プロパティ 値として表現できるデータ
    【動画21】 発展1講座第2章 - プロパティ 値として表現できるデータ 未習得
  22. 【動画22】 発展1講座第2章 - プロパティ Offset
    【動画22】 発展1講座第2章 - プロパティ Offset 未習得
  23. 【動画23】 発展1講座第2章 - プロパティ Offsetの使い方
    【動画23】 発展1講座第2章 - プロパティ Offsetの使い方 未習得
  24. 【動画24】 発展1講座第2章 - End プロパティの使い方
    【動画24】 発展1講座第2章 - End プロパティの使い方 未習得
  25. 【動画25】 発展1講座第2章 - メソッド1
    【動画25】 発展1講座第2章 - メソッド1 未習得
  26. 【動画26】 発展1講座第2章 - メソッド2
    【動画26】 発展1講座第2章 - メソッド2 未習得
  27. 【動画27】 発展1講座第3章 - マクロの自動記録 イントロダクション
    【動画27】 発展1講座第3章 - マクロの自動記録 イントロダクション 未習得
  28. 【動画28】 発展1講座第3章 - マクロの自動記録 オートフィルタ1
    【動画28】 発展1講座第3章 - マクロの自動記録 オートフィルタ1 未習得
  29. 【動画29】 発展1講座第3章 - マクロの自動記録 オートフィルタ2
    【動画29】 発展1講座第3章 - マクロの自動記録 オートフィルタ2 未習得
  30. 【動画30】 発展1講座第3章 - マクロの自動記録 フォントの設定
    【動画30】 発展1講座第3章 - マクロの自動記録 フォントの設定 未習得
  31. 【動画31】 発展1講座第3章 - マクロの自動記録 カラーインデックス
    【動画31】 発展1講座第3章 - マクロの自動記録 カラーインデックス 未習得
  32. 【動画32】 発展1講座第3章 - マクロの自動記録 アンダースコア
    【動画32】 発展1講座第3章 - マクロの自動記録 アンダースコア 未習得
  33. 【動画33】 発展1講座第3章 - マクロの自動記録 途中改行1 入力支援機能
    【動画33】 発展1講座第3章 - マクロの自動記録 途中改行1 入力支援機能 未習得
  34. 【動画34】 発展1講座第3章 - マクロの自動記録 途中改行2
    【動画34】 発展1講座第3章 - マクロの自動記録 途中改行2 未習得
  35. 【動画35】 発展1講座第3章 - マクロの自動記録 並べ替え
    【動画35】 発展1講座第3章 - マクロの自動記録 並べ替え 未習得
  36. 【動画36】 発展1講座第3章 - マクロの自動記録 個人用マクロブック
    【動画36】 発展1講座第3章 - マクロの自動記録 個人用マクロブック 未習得
  37. 【動画37】 発展1講座第4章 - 論理演算子 イントロダクション
    【動画37】 発展1講座第4章 - 論理演算子 イントロダクション 未習得
  38. 【動画38】 発展1講座第4章 - 論理演算子 解説
    【動画38】 発展1講座第4章 - 論理演算子 解説 未習得
  39. 【動画39】 発展1講座第4章 - 構造文 イントロダクション
    【動画39】 発展1講座第4章 - 構造文 イントロダクション 未習得
  40. 【動画40】 発展1講座第4章 - For Each構文 イントロダクション1
    【動画40】 発展1講座第4章 - For Each構文 イントロダクション1 未習得
  41. 【動画41】 発展1講座第4章 - For Each構文 イントロダクション2
    【動画41】 発展1講座第4章 - For Each構文 イントロダクション2 未習得
  42. 【動画42】 発展1講座第4章 - For Each構文 イントロダクション3
    【動画42】 発展1講座第4章 - For Each構文 イントロダクション3 未習得
  43. 【動画43】 発展1講座第4章 - For Each構文 演習
    【動画43】 発展1講座第4章 - For Each構文 演習 未習得
  44. 【動画44】 発展1講座第4章 - For Each構文 伝票作成マクロ解説
    【動画44】 発展1講座第4章 - For Each構文 伝票作成マクロ解説 未習得
  45. 【動画45】 発展1講座第4章 - For Each構文 セルのコレクション
    【動画45】 発展1講座第4章 - For Each構文 セルのコレクション 未習得
  46. 【動画46】 発展1講座第4章 - For Each構文 カンニングペーパー
    【動画46】 発展1講座第4章 - For Each構文 カンニングペーパー 未習得
  47. 【動画47】 発展1講座第4章 - Do Loop構文 概要
    【動画47】 発展1講座第4章 - Do Loop構文 概要 未習得
  48. 【動画48】 発展1講座第4章 - Do Loop構文 マクロの流れ
    【動画48】 発展1講座第4章 - Do Loop構文 マクロの流れ 未習得
  49. 【動画49】 発展1講座第4章 - Do Loop構文 4つのパターン
    【動画49】 発展1講座第4章 - Do Loop構文 4つのパターン 未習得
  50. 【動画50】 発展1講座第4章 - Do Loop構文 マクロの強制終了
    【動画50】 発展1講座第4章 - Do Loop構文 マクロの強制終了 未習得
  51. 【動画51】 発展1講座第4章 - Exit For、Exit Do、Exit Sub
    【動画51】 発展1講座第4章 - Exit For、Exit Do、Exit Sub 未習得
  52. 【動画52】 発展1講座第4章 - Select Case 概要
    【動画52】 発展1講座第4章 - Select Case 概要 未習得
  53. 【動画53】 発展1講座第4章 - Select Case If文との比較
    【動画53】 発展1講座第4章 - Select Case If文との比較 未習得
  54. 【動画54】 発展1講座第4章 - Select Case 比較する条件の順番
    【動画54】 発展1講座第4章 - Select Case 比較する条件の順番 未習得
  55. 【動画55】 発展1講座第4章 - Select Case 複数条件の並べ方
    【動画55】 発展1講座第4章 - Select Case 複数条件の並べ方 未習得
  56. 【動画56】 発展1講座第4章 - Select Case 条件の範囲選択
    【動画56】 発展1講座第4章 - Select Case 条件の範囲選択 未習得
  57. 【動画57】 発展1講座第5章 - Sub プロシージャの分割と呼び出し
    【動画57】 発展1講座第5章 - Sub プロシージャの分割と呼び出し 未習得
  58. 【動画58】 発展1講座第5章 - Sub プロシージャを分割するメリット
    【動画58】 発展1講座第5章 - Sub プロシージャを分割するメリット 未習得
  59. 【動画59】 発展1講座第5章 - ステップアウト、ステップオーバー
    【動画59】 発展1講座第5章 - ステップアウト、ステップオーバー 未習得
  60. 【動画60】 発展1講座第5章 - モジュールレベル変数
    【動画60】 発展1講座第5章 - モジュールレベル変数 未習得
  61. 【動画61】 発展1講座第5章 - モジュールレベル変数の操作
    【動画61】 発展1講座第5章 - モジュールレベル変数の操作 未習得
  62. 【動画62】 発展1講座第5章 - モジュールレベル変数 変数の重複
    【動画62】 発展1講座第5章 - モジュールレベル変数 変数の重複 未習得
  63. 【動画63】 発展1講座第5章 - モジュールレベル変数 まとめ
    【動画63】 発展1講座第5章 - モジュールレベル変数 まとめ 未習得
  64. 【動画64】 発展1講座第5章 - モジュールレベル変数 アクセシビリティ設定
    【動画64】 発展1講座第5章 - モジュールレベル変数 アクセシビリティ設定 未習得

塾長 小川慶一

メニュー

コメント紹介

もっと見る

ページの先頭へ