作業ブックのシート名「1」に
Option Explicit
Private Sub Worksheet_Activate()
Dim Row As Long
For Row = 2 To 23
With Cells(Row, "M")
.ID = .Value
End With
Next Row
End Sub
Private Sub Worksheet_Calculate()
Dim Row As Long, Changed As Boolean
For Row = 2 To 23
With Cells(Row, "M")
If .ID <> .Value Then
.ID = .Value
Changed = True
End If
End With
Next Row
'
Application.ScreenUpdating = False
If Changed Then
Const Temp1 = "○○市建築基準法施行条例 第"
Const Temp2 = "条 適用"
Dim RM As Long, Temp As String
Temp = ""
For RM = 2 To 23
If Cells(RM, "M") = "●" Then
Temp = Temp & Cells(RM, "N") & "・"
End If
Next RM
Temp = Replace(Temp & "@@", "・@@", "")
Application.EnableEvents = False
If Temp = "@@" Then
Range("O24").ClearContents
Else
Range("O24") = Temp1 & Temp & Temp2
End If
Application.EnableEvents = True
End If
Sheets("細則").Visible = [AE4] = "有"
Sheets("角地").Visible = [I26] = "有"
Sheets("真北").Visible = [I30] = "有"
Sheets("自衛隊").Visible = [I23] = "有"
Application.ScreenUpdating = True
End Sub
のコードを設定しております。
最初のコードはセルM列に●が表示されるとN列の数字がセルO24に表示されるようになっており、
次のコード
Sheets("細則").Visible = [AE4] = "有"
Sheets("角地").Visible = [I26] = "有"
Sheets("真北").Visible = [I30] = "有"
Sheets("自衛隊").Visible = [I23] = "有"
が各セルの表示に合わせて非表示シートを表示させるように設定しておりますが、
Sheets("細則").Visible = [AE4] = "有"
Sheets("角地").Visible = [I26] = "有"
Sheets("真北").Visible = [I30] = "有"
Sheets("自衛隊").Visible = [I23] = "有"
このコードが上手く動作してくれません。
解決方法をよろしくお願いいたします。
No.6ベストアンサー
- 回答日時:
処理を実行するタイミング(1行目のコード)をご理解下さい。
最初の質問にあったコードは
Private Sub Worksheet_Calculate()で
タイミングは再計算するときです。
補足にお書きになったコードは
Private Sub Worksheet_Change(ByVal Target As Range)で
セルを変更した時です。
>以前のコードでは各セル「例:AE4=有 I26=有等々をプルダウン選択で
>選択すると非表示シートが表示されました、
とのことですから、セルを変更したときに処理を実行していたわけで
Private Sub Worksheet_Change(ByVal Target As Range)
が正しいです。
No.5
- 回答日時:
No2です。
やはり、ご質問文が完全なミスディレクションになっているようですね。
他の方も、それに引っ張られているようです。
No4様の回答にあるように、まずはチェックをしてみるのが宜しいかと。
(想像するところ、セルに示される通りに動作しているものと思います)
No.4
- 回答日時:
[AE4] は Range("AE4")と同じですね。
セルAE4のデータが「有」ならシート細則を再表示するというコードです。
なのでまずはセルAE4やセルI26のデータが「有」かどうかを確認するのが一番かと。
No.3
- 回答日時:
直接の回答ではありません(削除されるかな)。
・最初の = は代入、次の = は比較演算子:比較した結果を代入している
・[AE4] は Range("AE4"):20年程前に見たので記憶に自信はないですが。
No.2
- 回答日時:
こんにちは
>このコードが上手く動作してくれません。
「上手くいかない」という情報だけでは、勝手に妄想するしかありません。
どううまくいかないのかや、エラーが出るのかなどの情報が重大なヒントになります。
(当てずっぽうの回答が欲しいのなら、それでも良いですけれど・・)
ということで、当てずっぽうで・・
ブックが保護されている状態だと、シートの表示/非表示の変更はできないはずです。
(もしこれが原因なら、エラーになるはずと思います)
No.1
- 回答日時:
Sheets("細則").Visible = [AE4] = "有"
何故=が2個もあるのですか?
[AE4]って何ですか?
"細則"シートを表示にするのなら、Sheets("細則").Visible =1です。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2022/04/01 12:11
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 2 2022/06/10 11:06
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 2 2022/03/25 08:33
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 3 2022/06/10 09:24
- Visual Basic(VBA) Excelのマクロコードについて教えてください。 1 2022/06/19 10:08
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/02/02 09:25
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2022/10/13 08:41
- Excel(エクセル) 2つのVBAを一緒にしたら機能しなくなりました(エクセル) 7 2022/06/02 12:41
- Visual Basic(VBA) ExcelVBAでDo Until loopのネスト、IF文を使って一致する物と一致しない物としたい 11 2022/12/24 17:46
- Excel(エクセル) マクロで最終行から上に検索を逆にしたい 1 2022/05/17 18:27
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
自衛隊や軍隊にいる人達はどう...
-
「以下」の使い方
-
本のタイトルは『』に入れる?
-
自衛官の正式書類への「勤務先...
-
大学院生は学生か
-
正導会について教えてください
-
ベストグループという団体は宗...
-
日本の10大都市って?
-
自衛隊/警視庁/民間ヘリの見分...
-
自治会と政教分離について
-
小山(栃木県)ー仙台まで、新...
-
カズレーザーってかつらですか...
-
AQUOSSENSE4でマイナンバーカ...
-
行政用語 省庁発の「事務連絡...
-
人員点呼の迅速化
-
ず、と、づ
-
「事務局」の定義とは?
-
【都市の】○○の都、東洋の○○【...
-
仙台~東京間を新幹線通学したい
-
自治会(町内会)会長の職件乱用
おすすめ情報
回答ありがとうございました。
実は以前
Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False
Const Temp1 = "○○市建築基準法施行条例 第"
Const Temp2 = "条 適用"
Dim R, C, RM, Temp
R = Target(1).Row
C = Target(1).Column
If (2 <= R And R <= 23) And C = 13 Then
Temp = ""
For RM = 2 To 23
If Cells(RM, 13) = "●" Then
Temp = Temp & Cells(RM, 14) & "・"
End If
Next RM
Temp = Replace(Temp & "@@", "・@@", "")
Application.EnableEvents = False
If Temp = "@@" Then
Range("O24").ClearContents
Else
Range("O24") = Temp1 & Temp & Temp2
End If
Application.EnableEvents = True
End If
Sheets("細則").Visible = [AE4] = "有"
Sheets("角地").Visible = [I26] = "有"
Sheets("真北").Visible = [I30] = "有"
Sheets("自衛隊").Visible = [I23] = "有"
Application.ScreenUpdating = True
End Sub
のコードを設定しておりましたが、
前半のコードがあるセルのコピーで「●」が表示され、上手く行かなかったので
質問をさせていただき、今回、の質問のコードを設定しました、
以前のコードでは各セル「例:AE4=有 I26=有等々をプルダウン選択で選択すると
非表示シートが表示されました、
しかし、今回の質問のコードを設定し、同じセル作業を行っても非表示シートが表示されなく
なってしまいました。
何度も申し訳ありません、解決方法を教えてください。