編集してください。
ソースコードが読みづらいです。
編集時に出てくる "</>" のボタンを押して、出てきたやつの中にソースコードを記述してください。
[追記1]
ソースコードを記述するときは、"</>"を押してその中に書いてください。
ここまではできていますが、
インデントが無いため読みづらい。
また、Sub に対する終了 ( End Sub ) もありません。
質問時に書くのを忘れたのか、ソースコード自体がそれなのかが判断できないです。
次に、問題となっている"なぜかA27からA40までのセルの表示が起こらない" はたぶん、
If文のElseの使い方が間違っているからだと思います。
質問にある状態では、
VBA
1If z = ("1:26") Then
2Label7.Caption = "法令"
3Else: z = ("27:40")
4Label7.Caption = "化学"
5End If
となっています。
Elseの部分を見ると z = ("27... となっていますね。これ、条件式じゃなくて、代入になっているかも。
If文で条件が複数ある場合 ( 同時に満たすやつじゃない方 ) だと
VBA
1If 条件1 Then
2 ' 条件1を満たしている場合
3ElseIf 条件2 Then
4 ' 条件2を満たしている場合
5ElseIf 条件3 Then
6 ' 条件3を満たしている場合
7Else
8 ' 上記のどれにも引っかからなかった場合
9End If
になっていたと思います。
質問にあるやつを考えると、
VBA
1If z = ("1:26") Then
2Label7.Caption = "法令"
3Else: z = ("27:40")
4Label7.Caption = "化学"
5End If
でしたよね。
VBA
1If z = ("1:26") Then
2Label7.Caption = "法令"
3Else:
4z = ("27:40") ' Zに代入
5Label7.Caption = "化学" 'Label7のCaptionに代入
6End If
の意味になるので、これが原因?
[ 返信1 ]
私が言いたかったものは「構文ミス」です。
C言語とかだとコンパイルエラーになるレベルじゃないですが、
履き違えている感じ。
もう一度入門系のサイトか書籍をお読みください。
で、ご自分が質問したものと比較してください。
質問者さんのは
VBA
1If z = ("1:26") Then
2Label7.Caption = "法令"
3Else: z = ("27:40")
4Label7.Caption = "化学"
5End If
となっていますよね?
Else以降を見てください。
Else: z = ("27:40")
となっていますね。
これって、コンパイラ(?) からすると
っていう風に2種類の文になっています。
たぶん質問者さんは z が ("27:40") のとき...っていう感じだと思っているはずですが、
実際には
「それ以外なら z に ("27:40")を代入する」っていうことになっているためだと思います。
C言語で書くと
C
1if( a == 100 ){
2
3}else{
4 z = 20 // ここが問題のエリア
5}
と
C
1if( a == 100 ){
2
3}else if( z == 20 ){
4 // ここが問題のエリア?
5}
は まるっきり違います。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/12/10 07:18
2017/12/10 09:44
2017/12/28 02:25