- ベストアンサー
EXCEL2000ある条件で指定セルへ移動させたい
EXCEL2000を使用しています。 行いたいことは、例えば、a2に"対象"と入力したら、d2にセルが飛び、セルの色が赤くなり、"対象にした理由を入力ください"とメッセージを出したいです。 VBAでも構いませんが、あまり得意ではなので、なるべくVBA以外の方法をお教え頂ければと思います。 どうぞよろしくお願い致します。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
失礼しました。 改めて; D列を列選択する(必ず行う) 書式メニューから条件付き書式を開始する セルの値が → 数式が に変更し =(A1="対象")*(D1="") と記入して、書式ボタンでセルの色を赤く塗る シート名タブを右クリックしてコードの表示を選ぶ 現れたシートで今記載されている内容は全て消去する 改めて下記をコピー貼り付ける private sub Worksheet_Change(byval Target as excel.range) dim h as range if application.intersect(target, range("A:A")) is nothing then exit sub for each h in application.intersect(target, range("A:A")) if h = "対象" then cells(h.row, "D").select msgbox "理由を入力" end if next end sub
その他の回答 (1)
- keithin
- ベストアンサー率66% (5278/7941)
>d2にセルが飛び Excel2002(OfficeXP)以降ならシートの保護を併用してある程度の事は出来ますが、エクセル2000ではマクロを使うしかありません。 >"対象にした理由を入力ください"とメッセージを出したい どこに、あるいはどのように、「メッセージを出し」たいのですか。 ご質問のD2セルに「メッセージ」を記入し、そのD2のメッセージを手入力で書き換えさせるような事をイメージしているのですか? 手順: D2セルに =IF(A2="対象","対象にした理由を記入","") 更に条件付き書式で セルの値が 次の値に等しい 対象にした理由を記入 で書式ボタンでセルの色を赤く塗らせる ユーザーはにD2セルの数式を、実際の理由で書き潰させる。 あるいは例えば「メッセージボックス」をポップアップしてメッセージを表示するとかなら、それはマクロの仕事です。 手順: シート名タブを右クリックしてコードの表示を選ぶ 現れたシートに下記をコピー貼り付ける private sub Worksheet_Change(byval Target as excel.range) dim h as range on error resume next for each h in application.intersect(target, range("A:A")) if h = "対象" then msgbox "対象にした理由を入力" cells(h.row, "D").select activecell.interior.color = vbred exit sub end if next end sub #赤くする部分は、前述の条件付き書式を併用する方が良い。
補足
keithinさん 早速にご回答いただき、また、行いたい内容を的確にお教え頂き、誠にありがとうございます。 お教え頂いた通りに行った結果、セルが移動し、メッセージが表示されましたが、その後、どのセルを選択してもメッセージが表示されてしまいました。。 もしよろしければ、回避方法をお教えいただけますでしょうか。 どうぞよろしくお願い致します。
お礼
都度、ご回答頂き、誠にありがとうございます。 お陰様で、無事やりたいことが出来ました!感謝致します。 =(A1="対象")*(D1="")で、条件定義が出来ることを初めて知りました。 また、EXCEL2000やACCESS2000について質問させていただきますので、ご回答の程、どうぞよろしくお願い致します。 (現在、ACCESS2000にて、EXCELファイルのインポートを質問中ですので、どうぞよろしくお願い致します。) 本当に、助かりました。 どうもありがとうございました!!