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

回答編集履歴

2

文章の追加

2017/12/28 02:35

投稿

BeatStar
BeatStar

スコア4962

answer CHANGED
@@ -71,4 +71,72 @@
71
71
  Label7.Caption = "化学" 'Label7のCaptionに代入
72
72
  End If
73
73
  ```
74
- の意味になるので、これが原因?
74
+ の意味になるので、これが原因?
75
+
76
+ ------------------------------------
77
+
78
+ [ 返信1 ]
79
+
80
+ 私が言いたかったものは「**構文ミス**」です。
81
+
82
+ C言語とかだとコンパイルエラーになるレベルじゃないですが、
83
+
84
+ 履き違えている感じ。
85
+
86
+ もう一度入門系のサイトか書籍をお読みください。
87
+
88
+ で、ご自分が質問したものと比較してください。
89
+
90
+ 質問者さんのは
91
+
92
+ ```VBA
93
+ If z = ("1:26") Then
94
+ Label7.Caption = "法令"
95
+ Else: z = ("27:40")
96
+ Label7.Caption = "化学"
97
+ End If
98
+ ```
99
+
100
+ となっていますよね?
101
+
102
+ Else以降を見てください。
103
+
104
+ Else: z = ("27:40")
105
+
106
+ となっていますね。
107
+
108
+ これって、コンパイラ(?) からすると
109
+
110
+ ```ここに言語を入力
111
+ Else:
112
+ z = ("27:40")
113
+ ```
114
+
115
+ っていう風に2種類の文になっています。
116
+
117
+ たぶん質問者さんは z が ("27:40") のとき...っていう感じだと思っているはずですが、
118
+
119
+ 実際には
120
+
121
+ 「それ以外なら z に ("27:40")を代入する」っていうことになっているためだと思います。
122
+
123
+ C言語で書くと
124
+
125
+ ```C
126
+ if( a == 100 ){
127
+
128
+ }else{
129
+ z = 20 // ここが問題のエリア
130
+ }
131
+ ```
132
+
133
+
134
+ ```C
135
+ if( a == 100 ){
136
+
137
+ }else if( z == 20 ){
138
+ // ここが問題のエリア?
139
+ }
140
+ ```
141
+
142
+ は まるっきり違います。

1

回答の追加

2017/12/28 02:34

投稿

BeatStar
BeatStar

スコア4962

answer CHANGED
@@ -2,4 +2,73 @@
2
2
 
3
3
  ソースコードが読みづらいです。
4
4
 
5
- 編集時に出てくる "</>" のボタンを押して、出てきたやつの中にソースコードを記述してください。
5
+ 編集時に出てくる "</>" のボタンを押して、出てきたやつの中にソースコードを記述してください。
6
+
7
+ ------------------------------------
8
+
9
+ [追記1]
10
+
11
+ ソースコードを記述するときは、"</>"を押してその中に書いてください。
12
+
13
+ ここまではできていますが、
14
+
15
+ インデントが無いため読みづらい。
16
+
17
+ また、Sub に対する終了 ( End Sub ) もありません。
18
+
19
+ 質問時に書くのを忘れたのか、ソースコード自体がそれなのかが判断できないです。
20
+
21
+ 次に、問題となっている"なぜかA27からA40までのセルの表示が起こらない" はたぶん、
22
+
23
+ If文のElseの使い方が間違っているからだと思います。
24
+
25
+ 質問にある状態では、
26
+
27
+ ```VBA
28
+ If z = ("1:26") Then
29
+ Label7.Caption = "法令"
30
+ Else: z = ("27:40")
31
+ Label7.Caption = "化学"
32
+ End If
33
+ ```
34
+ となっています。
35
+
36
+ Elseの部分を見ると z = ("27... となっていますね。これ、条件式じゃなくて、代入になっているかも。
37
+
38
+ If文で条件が複数ある場合 ( 同時に満たすやつじゃない方 ) だと
39
+
40
+ ```VBA
41
+ If 条件1 Then
42
+ ' 条件1を満たしている場合
43
+ ElseIf 条件2 Then
44
+ ' 条件2を満たしている場合
45
+ ElseIf 条件3 Then
46
+ ' 条件3を満たしている場合
47
+ Else
48
+ ' 上記のどれにも引っかからなかった場合
49
+ End If
50
+ ```
51
+
52
+ になっていたと思います。
53
+
54
+ 質問にあるやつを考えると、
55
+
56
+ ```VBA
57
+ If z = ("1:26") Then
58
+ Label7.Caption = "法令"
59
+ Else: z = ("27:40")
60
+ Label7.Caption = "化学"
61
+ End If
62
+ ```
63
+
64
+ でしたよね。
65
+
66
+ ```VBA
67
+ If z = ("1:26") Then
68
+ Label7.Caption = "法令"
69
+ Else:
70
+ z = ("27:40") ' Zに代入
71
+ Label7.Caption = "化学" 'Label7のCaptionに代入
72
+ End If
73
+ ```
74
+ の意味になるので、これが原因?