- 締切済み
EXCEL VBA イベントプロシージャを
一枚のシートにWorkseet Changeプロシージャを複数入れたいと思いますがこれは可能でしょうか? やってみると「名前が適当ではありません」というエラーがでてしまうのですが。 よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- hana-hana3
- ベストアンサー率31% (4940/15541)
>A列に値が入力されています。それを、B列に入力があったときにはいったん空白にし、その後C列に入力があった時には再度表示する、と言う事をやりたいと思っています。 基本的にはこんな感じです。 Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 2 Then 'B列が変更された時の処理 ElseIf Target.Column = 3 Then 'C列が変更された時の処理 End If End Sub ですが、 「いったん空白」「再度表示する」 の処理はどのようにお考えでしょうか? 単純に削除(空白)すると戻す事はできません。 どこかに値を保存するか、文字色の変更で誤魔化すようにしないと「再表示」はできません。
- hana-hana3
- ベストアンサー率31% (4940/15541)
同一のプロシージャー名(イベント)は重複できません。 イベントを判断してどのような事をやりたいのか明記して下さい。 イベントが発生したセルの判断はIF文を使って分岐させます。
補足
回答ありがとうございます。 A列に値が入力されています。それを、B列に入力があったときにはいったん空白にし、その後C列に入力があった時には再度表示する、と言う事をやりたいと思っています。 B列へのイベントとC列へのイベントを別のプロシージャでやろうとしてエラーがでてしまいました。 名前を変えれば良いと言う事でしょうか?
お礼
その後いろいろやってみて解決しました。 要はWorksheet_Changeを一枚のシートに二つ入れようとしたのが間違いで、一つの Private Sub Worksheet_Change End Sub の間にやりたい事を別々に二つ記述すれば良かったんですね。 参考になりました。 回答ありがとうございました。