• ベストアンサー

該当セル内の判定

セル範囲に「成績」という名前を付け、その範囲内にセルが来たら、ステータスバーに「成績入力域です。」と表示させ、該当範囲から外れると消したいのですが、そういうことはできるでしょうか? ステータスバーに出せない場合は、特定のセルに表示させるつもりです。 Sheets("Aクラス").Range("成績")を使ってどのように判定したらよいか困っています。

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

  • ベストアンサー
  • hige_082
  • ベストアンサー率50% (379/747)
回答No.1

シートモジュールに設定してください Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Intersect(Target, Range("A1:b10")) Is Nothing Then Application.StatusBar = False Exit Sub Else Application.StatusBar = "成績入力域です。" End If End Sub こんな感じでしょうか

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • ExcelVba 有効なセルかどうかを判定するには

    いつもお世話になります。 指定されたセルが有効なセルかどうかを判定したいのですが、何かよい方法がないかどうか質問させていただきました。 ユーザにrangeオブジェクトの引数を入力してもらう形なのですが、指定された値が例えば、aaa などの場合、Range("aaa")となり、当然これは無効なので、そのような指定はできませんよ、としたいのですが、これをエラーとしてハンドリングするのではなく、よい判定方法はないものでしょうか。 よろしくお願いします。

  • VBAのTextBox表示について質問します。

    実は、MicrosoftのExcel内にありますVBAを使ってシート内に記載られている内容を Userform内にあるTextBoxに表示させたいと考えています。 UserformにあるTextBoxは、シートのセルに対してTextBoxを1個配置させています。 例えば・・・セルA1に入力されている文字をTextBox1に表示 セルB1に入力されている文字をTextBox2に表示 セルC1に入力されている文字をTextBox3に表示 セルD1に入力されている文字をTextBox4に表示 セルE1に入力されている文字をTextBox5に表示と言う様な感じで表示したいです。 セル表示範囲は、A1~E24までのセルでTextBoxもTextBox24まで存在します。 TextBox1.Text = ThisWorkbook.Sheets("Sheet1").Range("A1") TextBox2.Text = ThisWorkbook.Sheets("Sheet1").Range("B1") TextBox3.Text = ThisWorkbook.Sheets("Sheet1").Range("C1") TextBox4.Text = ThisWorkbook.Sheets("Sheet1").Range("D1") TextBox5.Text = ThisWorkbook.Sheets("Sheet1").Range("E1") TextBox6.Text = ThisWorkbook.Sheets("Sheet1").Range("A2") TextBox7.Text = ThisWorkbook.Sheets("Sheet1").Range("B2") TextBox8.Text = ThisWorkbook.Sheets("Sheet1").Range("C2") TextBox9.Text = ThisWorkbook.Sheets("Sheet1").Range("D2") TextBox10.Text = ThisWorkbook.Sheets("Sheet1").Range("E2") 以降~途中省略 TextBox120.Text = ThisWorkbook.Sheets("Sheet1").Range("E24") と言う様な・・・ 上記の、この様なコードでして行くと事は可能なんですが・・・ もっと短く出来ないでしょうか?

  • 〔Excel〕名前をつけたセルの範囲を変えるには?

    「A1:A3」の範囲のセルに「Range」という名前をつけたとして この「Range」と名前のついたセルの範囲を「A1:A5」に拡大するには どうすればよいのでしょうか? 詳しい方がいたら教えてください。

  • ExcelVBA 二つのセルに入力された時の判定

    セルA1とA2両方に値が入力された時、セルA3に文字を入力するマクロを作りたいです。 下記プログラムで試しているのですが、ステップインで見ると最初のIFでTrue判定されてしまいます。 どうすればこの条件を満たすマクロになるのか、教えて頂けないでしょうか。 以上、宜しくお願い致します。 Private Sub Worksheet_Change(ByVal Target As Range) If Intersect(Target, Range("A1")) Is Nothing Or Intersect(Target, Range("A2")) Is Nothing Then Exit Sub Else If Range("A1").Value <> "" And Range("A2").Value <> "" Then Range("A3").Value = "入力済み" End If End If End Sub

  • VBA 特定のシートが選択されていたら、セル入力

    Excel365。簡略化したVBAです。 現在、「あ」というシートが選択されていたら、「あ」シートの「A1」セルに「a」と入力 「い」というシートが選択されていたら「い」シートの「A1」セルに「i」と入力。 それ以外のシートが選択されていたら、何もしない。 If Sheets("あ").Activate Then Range("A1") = "a" ElseIf Sheets("い").Activate Then Range("A1") = "i" Else 以下省略 「い」シート選択中でも、「あ」シートの「a1」セルに入力され、シートを増やしても、「あ」シートの「a1」セルに入力されます。 「い」シートを入力していません。 簡単だと思っていたのですが…。 どんなコードになるのでしょうか?

  • オートフィルタで非表示セルの判定

    オートフィルタでフィルタ後、表示されない行にあるボタンを消したいのですが表示されていないセルの判定方法がわかりません。 下のマクロではエラーが出ます。 よろしくお願いします。 If ActiveSheet.Range("a10").Visible = False Then ボタンを消すマクロ End If

  • 複数のセルを判定して、入力値を決めるマクロ

    エクセルで下記の様なマクロを組みたいのですが、どのようにすればよいでしょうか。 まず、下記のようにセルが4つあります。  ----------------------- |  1  |  2  |  3  |  4  |  ----------------------- セル1,2,3にはA,B,Cの文字が手動で入力されます。 (全てAという場合もあり、重複可です) セル1,2,3に入力された文字を判定してセル4にs,a,b,cという文字を自動的に表示させたいのです。 セル4に表示させる為の条件は、 セル1がAの場合 セC bbb ルB abb ←ここがセル4に表示される文字です 2A sab    ABC    セル3 セル1がBの場合  ・  ・  ・ といった感じです。

  • excel 空白セルに自動で斜線をひきたいです

    EXCEL2007使用しています。 名簿シートと印刷シートがあります。 印刷シートのセルAJ33:AR37の結合セルに=IF(VLOOKUP($J$4,名簿!$A$2:$G$383,7)="","","印") がはいっています。 このセルが空白ならば斜線を引きたいのですが、なかなかうまくできません。 過去の質問等も参考にしましたが、斜線は引けても、今度は消えません・・・。 ちなみに連続印刷をすでに作ってあるのですが、この連続印刷にも対応させることは可能でしょうか? A1:C3の結合セルの名前は”番号”  印刷範囲の入力セルは”自”、”至”としてあります。 Sub 印刷開始() Range("番号") = Range("自") Do While Range("番号") <= Range("至") Sheets("印刷").PrintOut Range("番号") = Range("番号") + 1 Loop End Sub 説明力がなくて申し訳ないのですが、どうぞよろしくお願い致します。

  • Excel VBA 空白セルをチェックする方法

    こんばんは ある選択範囲でどれか1つのセルに空白があった場合 メッセージを表示させたいのですが、 リスト中に入力された範囲のすべてのセルをチェックしたいのです。 どのようにしたら良いのでしょうか。 A1~A3の範囲のみでしたら下記でよいのかな?と考えてみました。 VBA勉強中なのですが、なかなかうまくいきません。お力をお願い致します。 If IsEmpty(Range("a2:d2").Value) Then MsgBox "開始時刻が入力されていません。" Worksheets("Sheet1").Range("a2").Select

  • ExcelVBAで範囲のセルを別のシートのセルに代入する方法はありますか

    ExcelVBAで範囲のセルを別のシートのセルに代入する方法はありませんか。 範囲でなく、一つのセルだけなら代入できるのですが、範囲にすると代入先が空白になってしまいます。 例えばSheet2のC1~C3をSheet1のB1~B3に代入したいとき Sheets("Sheet1").Range("B1:B3") = Sheets("Sheet2").Range("C1:C3") この記述だとSheet1のB1~B2までが空白になってしまいます。 アクティブシートが変わると処理がおかしくなるのでコピーペーストは使いにくいです。 よろしくお願いします。