Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


9667 / 13646 ツリー ←次へ | 前へ→

【26140】リスト入力規制のセルについて malco 05/6/24(金) 14:13 質問[未読]
【26142】Re:リスト入力規制のセルについて Jaka 05/6/24(金) 14:41 回答[未読]
【26162】Re:リスト入力規制のセルについて malco 05/6/25(土) 0:36 お礼[未読]

【26140】リスト入力規制のセルについて
質問  malco  - 05/6/24(金) 14:13 -

引用なし
パスワード
   簡単な受注表をリストにして管理しています。
以前はシート上のみで処理していましたが、徐々に扱いが増えてきたので
入力やその他の処理にVBAを使い始めました。

さて、受注してから先方に届くまでに何段階かの手順があり、受注の状況が
変わるので、その処理をいつやったかを把握するためにリスト中に
「更新日」という項目を設けて、その他の項目に変化があるたびに
自動で日付を更新したいと思っています。
その更新作業はまだ、シート上の直接入力が主です。
で、直接入力についてはWorksheet_changeイベントを使って

Private sub Worksheet_change(ByVal Target As Range)
    gyo = Target.Row
    Cells(gyo,「更新日」の列) =Date
End sub

と言うようなマクロで上手く行きました。

でも、項目の中にいくつかリスト入力規制を使った列があるのですが、
この項目をリストタブで変えても、WorkSheet_Changeイベントは反応してくれなくて
日付が変わりません。
対処法ってあるのでしょうか? ListBoxイベントと言うのがあるようですが
いまいち意味が分からず、使えません。
どなたか教えていただけないでしょうか?
よろしくお願いします。

【26142】Re:リスト入力規制のセルについて
回答  Jaka  - 05/6/24(金) 14:41 -

引用なし
パスワード
   こんにちは。

>WorkSheet_Changeイベントは反応してくれなくて
EXL97ですね。
Calculateイベントで代用してください。
例えばA1が入力規則のリストセルだったら、別のセルに関数 =A1 と書いておき、このセルが再計算された時のイベントを使用します。

シートモジュールにこんな感じで....。
Private Sub Worksheet_Calculate()
  If ActiveCell.Address(0, 0) = "A1" Then
    MsgBox ActiveCell.Value
  End If
End Sub

【26162】Re:リスト入力規制のセルについて
お礼  malco  - 05/6/25(土) 0:36 -

引用なし
パスワード
   ▼Jaka さん:
いえ、バージョンはOffice for MacOS Xです。_| ̄|○  マイナーですみません。
バージョンは書かないとだめでしたね。 申し訳ありませんでした。
回答を見て「もしかしてバージョンが新しければ、動作するのか?」と思い立ち
友人のOffice2003にブックを移して動作させてみたところ、WorkSheet_Changeイベントだけで
すべてきちんと動作する事が判明しました。_| ̄|○
Mac版も最新バージョンだときちんと動作してくれるのかもしれません。
現在財布と相談中です。 トホホ…
Calculateイベントも試してみます。 回答どうもありがとうございました。

9667 / 13646 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free