[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『指定した複数のセルに入力された時にマクロを動作させたい』(もも)
いつもお世話になってます。
A1とA2に文字列が入力されたらマクロが作動するようにしたいのですが、
出来ますか??
よろしくお願いします。
もも
Worksheet_Changeイベントを調べてみて下さい。 (Jera)
ですが、すみません;;;;;
調べたのですがどうすればいいかはわかりませんでした。
If Target.range("A1:A2") Then
じゃだめですよね。
…何でダメなのかも調べたのですがよくわかりましせんでした。
A1とA2に文字列が入力されている、とどうすれば指定できるのかもわからないです…
初心者でほんとにすみません><
もも。
If Range("A1").Value <> "" And Range("A2").Value <> "" Then'←空白じゃなかったら MsgBox "何か入力されています。" End If でどうでしょう? Jeraさんの回答と併せて試してみてください。
(毛虫通過中)
せっかく教えていただいたのに
なんか動作がとまらなくなってかたまりました!
ごめんなさい…
もも
Worksheet_Changeを使っているので、A1とA2のセルを「何か空白じゃないもの(文字・数字・数式)に書き換えるたびにMsgBoxが表示されますよ。
(毛虫通過中)
A1 にデータが入力されているときに、A2を入力すると ある処理(できればここも詳しく)が
実行される。というように。
A1、A2 を両方変更したいときに、それぞれ動くのは期待通りなのか、気になっています。
(Mook)
処理は、
A1のデータをもとに日付を求めるもの、
A1のデータをもとに年月日を求めるもの、
B2のデータをもとに色を算出するもの、
の3つの数式です。
この処理をA1,A2の両方に入力されたときにしたいです。
ちなみに、処理のマクロは出来ています。
説明不足で申し訳ございませんでした。
よろしくお願いします。
もも
そのシートのシートタブを右クリックしてコードの表示を選んででてくるところに
Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("A1:A2")) Is Nothing Then If WorksheetFunction.CountA(Range("A1:A2")) = 2 Then 'ここで処理 'あるいは、その処理プロシジャが別途かかれているなら 'Call そのプロシジャ名 End If End If End Sub
(ぶらっと)
(ぶらっと)さん 既にA1,A2とも入力されていて A1,A2をクリアせずにA1を変更後A2を入力しようとする前に Worksheet_Changeイベントが発生するけどどの様に対応すれば よいのかな? (ROM人)
今までのマクロだと、
シートがアクティブになったときに起こるようになっており、
入力したら別のシートをクリックし、もう一度シートをアクティブにしていました。
このシートの結果は他のシートで参照しています。
もも
やってみたのですが…
処理が終わらずかたまってしまいました…
自分でも調べて試行錯誤したのですが、かたまるばかりです…
せっかく教えてくださったのにすみません;;;;
もも
上のほうでもいわれていたと思うけど、 'ここで処理 のところでA1あるいはA2を変更するロジックがあれば「永久ループ」するよ。 この部分のコードをアップしてもらうか、あるいは
Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("A1:A2")) Is Nothing Then Application.EnableEvents = False '★追加 If WorksheetFunction.CountA(Range("A1:A2")) = 2 Then 'ここで処理 'あるいは、その処理プロシジャが別途かかれているなら 'Call そのプロシジャ名 End If Application.EnableEvents = True '★追加 End If End Sub
さらに、(ROM人)さんからの指摘、重要だよね。 A1をいれる、次にA2をいれる。実行される。ここまではいいけど、 それぞれ、違う値をいれてから実行したいのに、アップしたコードでは、どちら一方をいれただけで もう一方は古い値のまま動いてしまう。その場合は、A1:A2 を選んでクリアしてから入れなおすことになるんだけど面倒かな?
であれば、この「入力したら実行」ということは「あきらめて」、シートにボタンを配置して、そちらで すでに作ってあるマクロを登録。操作者が、2つのセルに入力した上で、さぁ実行ということでボタンをおす。 そういう運用にしたほうがいいかもよ。
(ぶらっと)
なんども何度もありがとうございます。
もも
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.