teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

12

ミス修正

2019/03/11 09:06

投稿

komugi3333
komugi3333

スコア94

answer CHANGED
@@ -1,4 +1,4 @@
1
- 一応、ExcelでのVBAの学習だと仮定して、今読んでみえる本の次に、以下の2冊をお勧めします。
1
+ 一応、ExcelでのVBAの学習だと仮定して、今読んでいらっしゃる本の次に、以下の2冊をお勧めします。
2
2
  (ExcelVBA以外の、WordやAccessのVBAの学習にもとても役立ちます。)
3
3
 
4
4
  (A)スラスラ読める Excel VBA ふりがなプログラミング

11

追記

2019/03/11 09:06

投稿

komugi3333
komugi3333

スコア94

answer CHANGED
@@ -75,7 +75,7 @@
75
75
  (17)オブジェクトを「取得する(=1つだけ選択する)」には、「プロパティ」を使う方法、「メソッド」を使う方法、「コレクション」を直接使う方法、VBA関数やNewキーワードやAddメソッドなどで返してもらう方法、等々があります。ExcelやWordの場合は、ほとんどが「プロパティ」を使う方法で、Accessの場合や(Excel・WWordでも)ユーザーフォームを扱う場合は、多分ですが、「コレクション」を直接使う方法、が多いと思います。(自信なし)  どのオブジェクトに対して、どの方法で取得(=選択)するかは、ヘルプの各オブジェクトのページに書いてあります。※VBA関数・New・Addは、別のExcelファイルを動かす場合や、ExcelからWordなどを動かす場合などに使います。
76
76
  ※「プロパティ」を使う場合、その名前と同じ名前のコレクションオブジェクトが存在するので、また、それが「意味的にとても近いところ」にあるので、混同しないことが大切です。
77
77
 
78
- (18)上位の階層のオブジェクトを調べるには、例えばExcelVBAの場合なら、「Parentプロパティ+TypeName関数」の合わせ技やオブジェクトブラウザ+F1ヘルプ、下位の階層のオブジェクトを調べるには「Stop+ローカルウィンドウの合わせ技」やオブジェクトブラウザ+F1ヘルプ、などが調べやすいと思います。
78
+ (18)上位の階層のオブジェクトを調べるには、例えばExcelVBAの場合なら、「Parentプロパティ単一or複数重ね+TypeName関数」の合わせ技やオブジェクトブラウザ+F1ヘルプ、下位の階層のオブジェクトを調べるには「Stop+ローカルウィンドウの合わせ技」やオブジェクトブラウザ+F1ヘルプ、などが調べやすいと思います。
79
79
 
80
80
  (19)変数の中身が、現在何型でどんな値が入っているかを調べるには、「Stop+ローカルウィンドウ」を必ず使います。特に、Variant型やObject型の変数を使っている時には、いつでも使えるようになっておくことが必須です。
81
81
 

10

追記

2019/03/11 09:05

投稿

komugi3333
komugi3333

スコア94

answer CHANGED
File without changes

9

ミスの修正と追記

2019/03/11 09:04

投稿

komugi3333
komugi3333

スコア94

answer CHANGED
@@ -72,8 +72,8 @@
72
72
  (16)オブジェクトには、「単一のオブジェクト(通称オブジェクト)」と「コレクションオブジェクト(通称コレクション)」の大きく2種類があります。なお、コレクションは単一のオブジェクトを複数束ねるものですが、束ねているからといって、単一オブジェクトの「上位の階層」にコレクションオブジェクトが位置しているわけではなさそうです。「束ねつつ、コレクションも単一オブジェクトも、同じ階層に存在する」、と仮定して理解してしまったほうが、階層構造一覧図を見ながらオブジェクト式を書きやすくなります。
73
73
  実際、あるオブジェクトとオブジェクトのあいだに、コレクションが「1階層」分を占有して存在することはありません。
74
74
 
75
- (17)オブジェクトを「取得する(=1つだけ選択する)」には、「プロパティ」を使う方法、「メソッド」を使う方法、「コレクション」を直接使う方法、VBA関数で返してもらう方法、などがあります。ExcelやWordの場合は、ほとんどが「プロパティ」を使う方法で、Accessの場合や(Excel・WWordでも)ユーザーフォームを扱う場合は、多分ですが、「コレクション」を直接使う方法、が多いと思います。(自信なし)
76
- のオブジェクトに対して、どの方法で取得(=選択)するかは、ヘルプ各オブジェクトのページ書いてあります。
75
+ (17)オブジェクトを「取得する(=1つだけ選択する)」には、「プロパティ」を使う方法、「メソッド」を使う方法、「コレクション」を直接使う方法、VBA関数やNewキーワードやAddメソッドなどで返してもらう方法、等々があります。ExcelやWordの場合は、ほとんどが「プロパティ」を使う方法で、Accessの場合や(Excel・WWordでも)ユーザーフォームを扱う場合は、多分ですが、「コレクション」を直接使う方法、が多いと思います。(自信なし)  どのオブジェクトに対して、どの方法で取得(=選択)するかは、ヘルプの各オブジェクトのページに書いてあります。※VBA関数・New・Addは、別のExcelファイルを動かす場合や、ExcelからWordなどを動かす場合などに使います。
76
+ ※「プロパティ」を使う場合、そ名前と同じ名前のコレクションオブジェクトが存在するので、また、それが「意味的も近いところ」にるので、混同しないことが大切です。
77
77
 
78
78
  (18)上位の階層のオブジェクトを調べるには、例えばExcelVBAの場合なら、「Parentプロパティ+TypeName関数」の合わせ技やオブジェクトブラウザ+F1ヘルプ、下位の階層のオブジェクトを調べるには「Stop+ローカルウィンドウの合わせ技」やオブジェクトブラウザ+F1ヘルプ、などが調べやすいと思います。
79
79
 

8

追記

2019/03/11 08:49

投稿

komugi3333
komugi3333

スコア94

answer CHANGED
@@ -73,6 +73,7 @@
73
73
  実際、あるオブジェクトとオブジェクトのあいだに、コレクションが「1階層」分を占有して存在することはありません。
74
74
 
75
75
  (17)オブジェクトを「取得する(=1つだけ選択する)」には、「プロパティ」を使う方法、「メソッド」を使う方法、「コレクション」を直接使う方法、VBA関数で返してもらう方法、などがあります。ExcelやWordの場合は、ほとんどが「プロパティ」を使う方法で、Accessの場合や(Excel・WWordでも)ユーザーフォームを扱う場合は、多分ですが、「コレクション」を直接使う方法、が多いと思います。(自信なし)
76
+ どのオブジェクトに対して、どの方法で取得(=選択)するかは、ヘルプの各オブジェクトのページに書いてあります。
76
77
 
77
78
  (18)上位の階層のオブジェクトを調べるには、例えばExcelVBAの場合なら、「Parentプロパティ+TypeName関数」の合わせ技やオブジェクトブラウザ+F1ヘルプ、下位の階層のオブジェクトを調べるには「Stop+ローカルウィンドウの合わせ技」やオブジェクトブラウザ+F1ヘルプ、などが調べやすいと思います。
78
79
 

7

訂正

2019/03/11 08:38

投稿

komugi3333
komugi3333

スコア94

answer CHANGED
@@ -36,7 +36,7 @@
36
36
 
37
37
  (03)そして、VBAの場合、「変数」には大きくは 2つある。というか、2つしかない。それは、「一般的な変数」と「オブジェクト変数」の2つ。
38
38
 
39
- (04)「一般的な変数」に代入する生データは「一般データ( リテラル値 )」。具体的には「数値、文字列、日付、True/False」などの「文字ベース」のデータ。
39
+ (04)「一般的な変数」に代入する生データは「一般データ( リテラル値 )」。具体的には「数値、文字列、日付、True/False」などの「文字ベース」のデータ。
40
40
 
41
41
  (05)「オブジェクト変数」に代入する、生データに相当するものは「オブジェクト式」(=オブジェクト)。
42
42
 

6

追記

2019/03/11 08:32

投稿

komugi3333
komugi3333

スコア94

answer CHANGED
@@ -14,9 +14,9 @@
14
14
 
15
15
  他の本を読みながらでもいいので、この2冊だけは、もしできることなら、ご購入をお勧めします。
16
16
 
17
- 理由は、以降に挙げた(01)~(19)に当てはまるように書かれていて、長い目で見ると、挫折しにくかったり、一度や二度・挫折しても再度読み直すと復活しやすい本だからです。
17
+ 理由は、以降に挙げた(01)~(20)に当てはまるように書かれていて、長い目で見ると、挫折しにくかったり、一度や二度・挫折しても再度読み直すと復活しやすい本だからです。
18
18
 
19
- 以降に挙げた(01)~(19)は、半分は、上記の2冊から学んだことです。
19
+ 以降に挙げた(01)~(20)は、半分は、上記の2冊から学んだことです。
20
20
  (私も初心者なので間違いがあるかもしれませんが。もしそうだったらスミマセン!)
21
21
 
22
22
  僕自身、グラフも動かせないような初心者なのですが、ご紹介した2冊を読んだおかげで、ある地点から、自分で言うのもなんですが、飛躍的にExcelVBAを理解できるようになりました。
@@ -24,7 +24,7 @@
24
24
 
25
25
  なお、以下のような流れを意識して書かれている「初心者本」は、ご紹介した2冊以外、どんなレジェンドさんの本を探しても、多分、無いのではないかと思っています。
26
26
 
27
- 2冊の本の不明点、と、以下の(01)~(19)の不明点を、一語一句、すべて、分かる人や先輩などに、わかるまで何回でも聞けば、恐らくですが、高い確率で上達すると思います。
27
+ 2冊の本の不明点、と、以下の(01)~(20)の不明点を、一語一句、すべて、分かる人や先輩などに、わかるまで何回でも聞けば、恐らくですが、高い確率で上達すると思います。
28
28
  他の初心者本なら、分からなかったらスルーしてもいいですが、この2冊は、スルーしないほうが良いと思います。一度や二度、挫折してもいいので、必ず「わかるまで」誰かに教えてもらってください。
29
29
 
30
30
  頑張ってください!!
@@ -76,6 +76,8 @@
76
76
 
77
77
  (18)上位の階層のオブジェクトを調べるには、例えばExcelVBAの場合なら、「Parentプロパティ+TypeName関数」の合わせ技やオブジェクトブラウザ+F1ヘルプ、下位の階層のオブジェクトを調べるには「Stop+ローカルウィンドウの合わせ技」やオブジェクトブラウザ+F1ヘルプ、などが調べやすいと思います。
78
78
 
79
- (19)変数の中身が、現在何型でどんな値が入っているかを調べるには、「Stop+ローカルウィンドウ」を必ず使います。特に、Variant型やObject型の変数を使っている時は、いつでも使えるようになっておくことが必須です。
79
+ (19)変数の中身が、現在何型でどんな値が入っているかを調べるには、「Stop+ローカルウィンドウ」を必ず使います。特に、Variant型やObject型の変数を使っている時は、いつでも使えるようになっておくことが必須です。
80
80
 
81
+ (20)1つのプログラムの中で、「一般的な変数」を動かす処理と、「オブジェクト変数」を動かす処理は、多くの場合、混在します。
82
+
81
83
  ```

5

追記

2019/03/11 08:28

投稿

komugi3333
komugi3333

スコア94

answer CHANGED
@@ -1,4 +1,5 @@
1
- 今読んでみえる本の次に、以下の2冊をお勧めします。
1
+ 一応、ExcelでのVBAの学習だと仮定して、今読んでみえる本の次に、以下の2冊をお勧めします。
2
+ (ExcelVBA以外の、WordやAccessのVBAの学習にもとても役立ちます。)
2
3
 
3
4
  (A)スラスラ読める Excel VBA ふりがなプログラミング
4
5
    (ふりがなプログラミングシリーズ)

4

書き間違い修正

2019/03/11 08:23

投稿

komugi3333
komugi3333

スコア94

answer CHANGED
@@ -9,7 +9,7 @@
9
9
     (「いちばんやさしい教本」シリーズ)
10
10
  伊藤潔人 (著)
11
11
 
12
- この本の一語一句でもわからないところがあって、実際にExcelでサンプルを動かすことができないなら、この先、VBAをしっかりと理解できなくなる可能性が高いと思いますので、是非一度本屋さんで立ち読みでもしてみてください。
12
+ この本の一語一句でもわからないところがあって、実際にこの2冊のとおりにExcelでサンプルを作って・動かすことができないなら、この先、VBAをしっかりと理解できなくなる可能性が高いと思いますので、是非一度本屋さんで立ち読みでもしてみてください。(サンプルはもちろんダウンロードもできます。)
13
13
 
14
14
  他の本を読みながらでもいいので、この2冊だけは、もしできることなら、ご購入をお勧めします。
15
15
 

3

追記と誤字の修正

2019/03/11 08:20

投稿

komugi3333
komugi3333

スコア94

answer CHANGED
@@ -68,9 +68,10 @@
68
68
 
69
69
  (15)「一般データ(値)やオブジェクトを返す自作関数」の作り方を学ばないと、「思い通りのプログラム」を書くことは非常に難しい、ので、遅かれ早かれ、挫折します。
70
70
 
71
- (16)オブジェクトには、「単一のオブジェクト(通称オブジェクト)」と「コレクションオブジェクト(通称コレクション)」の大きく2種類があります。なお、「コレクションも単一オブジェクトも、同じ階層にる」、と定してしまう、階層構造一覧図を見ながらオブジェクト式を書きやすくなります。
71
+ (16)オブジェクトには、「単一のオブジェクト(通称オブジェクト)」と「コレクションオブジェクト(通称コレクション)」の大きく2種類があります。なお、コレクションは単一のオブジェクトを複数束ねるものですが、束ねているからといって、単一オブジェクトの上位の階層」にコレクションオブジェクトが位置しているわけではなさそうです。「束ねつつ、コレクションも単一オブジェクトも、同じ階層に存在する」、と定して理解てしったほ、階層構造一覧図を見ながらオブジェクト式を書きやすくなります。
72
+ 実際、あるオブジェクトとオブジェクトのあいだに、コレクションが「1階層」分を占有して存在することはありません。
72
73
 
73
- (17)オブジェクトを「取得する(=1つだけ選択する)」には、「プロパティ」を使う方法、「メソッド」を使う方法、「コレクション」を直接使う方法、VBA関数で返してもらう方法、などがあります。ExcelやWordの場合は、ほとんどが「プロパティ」を使う方法で、ユーザーフォームやAccessの場合は、多分ですが、「コレクション」を直接使う方法、と思います。(自信なし)
74
+ (17)オブジェクトを「取得する(=1つだけ選択する)」には、「プロパティ」を使う方法、「メソッド」を使う方法、「コレクション」を直接使う方法、VBA関数で返してもらう方法、などがあります。ExcelやWordの場合は、ほとんどが「プロパティ」を使う方法で、Accessの場合や(Excel・WWordでも)ユーザーフォームを扱う場合は、多分ですが、「コレクション」を直接使う方法、が多いと思います。(自信なし)
74
75
 
75
76
  (18)上位の階層のオブジェクトを調べるには、例えばExcelVBAの場合なら、「Parentプロパティ+TypeName関数」の合わせ技やオブジェクトブラウザ+F1ヘルプ、下位の階層のオブジェクトを調べるには「Stop+ローカルウィンドウの合わせ技」やオブジェクトブラウザ+F1ヘルプ、などが調べやすいと思います。
76
77
 

2

一部追記

2019/03/11 08:15

投稿

komugi3333
komugi3333

スコア94

answer CHANGED
@@ -51,7 +51,7 @@
51
51
 
52
52
  (09)したがって「オブジェクト変数」は、その中に代入した「オブジェクト」の 内側に内包している命令・機能たちを「引き出して」、ステートメントとともに動かすイメージ。
53
53
 
54
- (10)逆に、「一般データ」を代入した「一般的な変数」は、その外側にある「VBA関数」を使って、同じく、ステートメントとともに動かすイメージ。
54
+ (10)逆に、「一般データ」を代入した「一般的な変数」は、その外側にある「VBA関数」や「演算子」を使って、同じく、ステートメントとともに動かすイメージ。
55
55
 
56
56
  (11)ただし、一般データは「一般的な変数」に代入しないと動かすことが困難だけど、オブジェクトは「オブジェクト変数」に代入しなくても「オブジェクト式のまま」で動かせる。というか、「動かせてしまう」。逆に言うと、このことが原因で、初心者が上達できない。
57
57
 

1

追記

2019/03/11 08:05

投稿

komugi3333
komugi3333

スコア94

answer CHANGED
@@ -16,6 +16,7 @@
16
16
  理由は、以降に挙げた(01)~(19)に当てはまるように書かれていて、長い目で見ると、挫折しにくかったり、一度や二度・挫折しても再度読み直すと復活しやすい本だからです。
17
17
 
18
18
  以降に挙げた(01)~(19)は、半分は、上記の2冊から学んだことです。
19
+ (私も初心者なので間違いがあるかもしれませんが。もしそうだったらスミマセン!)
19
20
 
20
21
  僕自身、グラフも動かせないような初心者なのですが、ご紹介した2冊を読んだおかげで、ある地点から、自分で言うのもなんですが、飛躍的にExcelVBAを理解できるようになりました。
21
22
  (ヘルプやオブジェクトブラウザを使えるようになり、人やWebに聞かなくても自力でエラーを解決できる件数が増えてきました。)