• ベストアンサー

特定のセルがアクティブになったときのイベント?

エクセルのVBAで、「あるセルの内容が変更されたらメッセージボックスを表示する」ということはなんとかできたのですが、 「あるセルを(クリックして)アクティブにしたらメッセージボックスを表示する」 この方法がわかりません。 教えてください。よろしくお願いします。

noname#183584
noname#183584

質問者が選んだベストアンサー

  • ベストアンサー
  • xls88
  • ベストアンサー率56% (669/1189)
回答No.2

SelectionChangeイベントがあります。 Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Not Intersect(Target, Range("A1:A10")) Is Nothing Then MsgBox "なんか用?" End If End Sub

noname#183584
質問者

お礼

ありがとうございました。 しようと思っていたことができました。m(_ _)m

その他の回答 (2)

  • BookerL
  • ベストアンサー率52% (599/1132)
回答No.3

Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Address <> "$A$1" Then Exit Sub MsgBox "メッセージボックス表示" End Sub みたいな感じでしょうか。

noname#183584
質問者

お礼

ありがとうございます。 でも、書かれたものがそのままでは動きませんでした。

回答No.1

メッセージボックスではないですが、 入力規則の入力時メッセージの機能を使ってはどうでしょう 参考まで

noname#183584
質問者

お礼

どうしてもだめなら基本機能を使おうと思っていましたが、今回VBAでできたのでそちらを使ってみます。 ありがとうございました。m(_ _)m

関連するQ&A

  • 《VBA》セルをダブルクリックしたときのイベント

    Worksheet/BeforeDoubleClickを使用して、 フォームを表示するという処理を行っています。 エクセルのセルにリストボックスが設定されているセルがあるのですが、 リストボックスのセルをダブルクリックした時にはイベントが動作しません。 通常のセルをダブルクリックした時にはイベントは正常に動作します。 リストボックスが設定されているセルでは動作することができないのでしょうか。

  • 特定のセルに文字が入力されているページの印刷VBA

    エクセルVBAで質問が2つあります。 エクセルシートは改ページプレビューでページ毎の印刷範囲が見えるようになっています。 (1)コマンドボックスを押したらE4~E963又はB4~B963のセルに文字が入力されているページのみ印刷するVBAはどの様にすれば宜しいでしょうか? (2)コマンドボックスを押すとインプットボックスが表示され、その中に数字を入力したら、その入力されたページのみを印刷するVBAはどの様にすれば宜しいでしょうか?

  • Excel VBAで可視セルをコピーしようとすると結合されたセルを変更

    Excel VBAで可視セルをコピーしようとすると結合されたセルを変更する事が出来ないとメッセージが出て進めないのは、何故でしょうか。

  • Excel 特定のセルだけEnterでセル内改行

    タイトル通りのことなのですが、VBA等を駆使してできないか悩んでいます Excelのセル内改行は通常Alt+Enterなのですが、 使っているシートの一つのセルだけ複数行入れるような大きな所があります。 他のセルでは問題ないのですがここの入力時では、 いつもAltを押しながらでないと改行できない煩わしさが募りまして、 「このセル内に限り」Enterキーだけで改行できるようにしたいのです。 条件としてはあくまでこのセルのみで、形を崩さずにできることが望ましいです。 この入力セルは他シートから参照されているため 複数行のセルに分割したり、テキストボックスに置き換えることは難しいです 色々探した挙句、Application.MoveAfterReturn など VBAを駆使して考えてみたのですが 手詰まりになってしまいました。 何かできる方法はありますでしょうか?

  • エクセルVBAでメッセージを表示する

    エクセルVBAでメッセージを表示する時は、 Msgbox "表示する内容" と記述しますが、これだと[OK]をクリックするまで エクセル本体が全く操作できなくなってしまいます。 メッセージボックスを表示させた状態で、エクセルを操作できるようにすることは 出来ますでしょうか?

  • VBAのメッセージボックスで%表示

    お世話になります。 VBAにて、算出されたある数字をメッセージボックスで %表示したいのですが、エクセルシートであれば、表示させる セルを決め、そのセルの表示形式を「パーセンテージ」にすれば いいのですが、メッセージボックスで表示させたいのです。 可能なのかどうか分かりませんが、ご教示頂きたく宜しく お願い申し上げます。

  • エクセルで特定のセル(範囲)を選択出来なくするには?

    エクセルで特定のセル上(範囲内)でクリックしても、そのセルを選択出来ない様に設定したいのですが、やり方がよくわかりません。 本でいろいろ調べてみましたが、「セルの保護」とは違うようです。 よくこの様にしてあるエクセルのソフトを見るのですが、そういう設定をしたいのです。 VBAマクロのプログラム上でそのように設定するのでしょうか? (マクロはある程度わかります) よろしければ御教示下さい。

  • あるセルの選択内容によって次ぎのセルをクリックした時に表示させるリストボックスの中身を変更したい。

    EXCEL VBAについての質問です。 初心者です。宜しくお願い致します。 使用環境はWindows 2000 service pack4 Excel 2000. =質問= セルA1をクリックするとあるリストボックスを表示させること の応用です。 セルA1をクリックするとリストボックスが表示させること自体 は以下の文で作動します。(userform1の中にリストボックス を設定してある。) Private Sub Worksheet_selectionChange(ByVal Target As Range) If Target.Address = "$A:$1" Then UserForm1.Show Cancel = True End if End sub この応用として、セルA1で選択された項目(値)によってセルA2 をクリックした時に表示させるリストボックス(ユーザーフォ ーム)を変更したい。 例えばセルA1の選択が"ABC"でセルA2をクリックするとリスト ボックス2(ユーザーフォーム2)が、選択が"EFG"の場合は リストボックス3(ユーザーフォーム3)が表示されるように したい。 セルA1の選択肢は最大4つでセルB1用に4つのユーザーフォー ムを準備することは問題ありません。 また、セルA1の選択項目を一旦どこかのセルに飛ばして数値化 しても問題なし。 最初、excelのIndirectとIf関数を使って、作業用シートでA1 を参照し、その項目(値)によって参照するリストを分けよう と思っていたのですが、セルA1、A2の幅が広ければよかったの ですが、1つのセル幅を小さく設定しなければならず、その場 合indirect関数で開いたリストは1つの項目に対し2~3文字し か表示できない状態になりました。 セルA1、A2の幅が小さくてもindirectによって開かれるリスト の幅が変更できればいいのですが、それは出来ないようです。 Worksheet_selectionChangeにIF文を加えてみたりしたのです が上手くいきません・・・ 海外で仕事をしているので参考文献やVBAに詳しい人に聞く事 ができません。 ご尽力のほど、宜しくお願い致します。

  • 特定セルの内容を更新したら、その更新日を自動的に表示する方法について

    エクセルで、特定のセルの内容を更新すると、別の特定セルに 更新日付が自動的に表示させたいと思っております。 例えば『A1』へ新規に文字入力したり、セルの内容を更新した時に、セル『B1』にその日の日付が自動で表示される。 そして、違う日にもう一度、同じ欄に入力すれば、その入力した日付に随時更新されるようにするための方法を教えていただければ幸いでございます。 御手数ですが、エクセル関数またはVBA、マクロのいずれかで実現可能な方法があれば教えて下さい。 何卒、宜しくお願いいたします。

  • Excel2007、修復されたセルを見つけたい。

    エクセル2007を使っています。いつも使っているエクセルの表を開こうとしたら、下記のようなエラーメッセージが表示されました。 「(私のファイル名)には、読み取れない内容が含まれています。このブックの内容を修復しますか? ブックの発行元が信頼できる場合は、はいをクリックして下さい。」 ここで、はいをクリックしました。 「読み取れなかった内容を修復または削除することにより、ファイルを開くことができました。 修復されたレコード: /xl/sharedStrings.xml パーツ内の文字列プロパティ (文字列)」 どこのセルに何を書き込んでこのメッセージが表示されたのか、わかりません。 エラーが出ているセルを見つけたいのです。毎回、修復してくれるので、一応開くことができるのですが、エラーの元になった文字列を訂正したいのです。どうやったら、そのセルを見つけることができますか?何カ所か書き込んだので、どのセルか見当がつきません。 よろしくお願いします。

専門家に質問してみよう