回答受付終了まであと1日

vbaで困っています。

Visual Basic71閲覧

回答(3件)

> Changeイベントを使用しています それは((Byval Target As Range) の前で改行されているのはミスとしても)Change イベンドプロシージャではありません。 それから [デバッグ]-[VBAProjectのコンパイル] を実行してみてください。エラーが出ます。 以下はたぶんやりたいことはこうなのだろうという推測に基づくものです。 「使用数カウント」の詳細は不明ではあるものの On Error GoTo errorhandler が必要とは思えませんが。 Private Sub Worksheet_Change(ByVal Target As Range)     On Error GoTo errorhandler     Application.EnableEvents = False     If Not Intersect(Target, Range("E4:E148")) Is Nothing Or Not Intersect(Target, Range("G4:G148")) Is Nothing Then         Debug.Print " 使用数カウント"         Call 使用数カウント     End If errorhandler: Application.EnableEvents = True End Sub

この回答はいかがでしたか? リアクションしてみよう

AIアイコン

AIからのお助け回答

AIアイコンみんなの知恵袋

過去のベストアンサーを参照してAI(GPT-4o)が回答!

みんなの知恵袋とは?

VBAのコードでWorksheet_Changeイベントを使用する際、Application.EnableEventsをFalseに設定したままエラーが発生すると、イベントが再び有効にならず、変更が反映されないことがあります。これを防ぐために、エラー処理を適切に行い、必ずEnableEventsをTrueに戻すようにしましょう。また、コードの構文に誤りがある可能性もあります。例えば、"me.range"ではなく"Me.Range"とする必要があります。デバッグウィンドウに何も表示されない場合は、これらの点を見直してください。

AIアイコンClaude 3(Anthropic)

・Worksheet_SheetChangeイベントハンドラーのコードには、いくつか問題があります。修正案を以下に示します。 Private Sub Worksheet_Change(ByVal Target As Range) On Error GoTo ErrorHandler Application.EnableEvents = False If Not Intersect(Target, Range("E4:E148")) Is Nothing Or _ Not Intersect(Target, Range("G4:G148")) Is Nothing Then Debug.Print "使用数カウント" Call 使用数カウント End If ErrorHandler: Application.EnableEvents = True End Sub ・主な修正点は以下の通りです。 - プロシージャ名の前に"Private Sub"を付ける必要があります。 - ByValキーワードの後にはスペースが必要です。 - Range関数の引数は二重引用符で囲む必要があります。 - Debug.Printの文字列は二重引用符で囲む必要があります。 - エラーハンドラのラベルは"ErrorHandler:"です。 ・この修正されたコードでは、セルE4からE148、またはG4からG148のいずれかが変更された場合に、"使用数カウント"がデバッグウィンドウに出力され、使用数カウントプロシージャが呼び出されます。 ・コードが正しく動作しない場合は、使用数カウントプロシージャ自体にも問題がある可能性があります。そのプロシージャのコードも確認する必要があります。

この回答は生成AIで作成したものであり、最新性や正確性を保証するものではありません。その他注意事項はこちら