• 締切済み

エクセルにて特定のセルを判別する方法

エクセル(一応2007を使用しています。)で、 下記のような表にてテスト結果の集計をする際、   A     B      C 1名前 クラス 点数 2鈴木    A 3田中    A 4佐藤    B 5森山    B C2からC5までに直接テストの点数を入力するのですが、その際に、 例えば、C2セルを選択している間だけ、A2の鈴木のセルの色が変わったりするようなことはできますでしょうか? 実際の表は、点数はC列ではなくもっと右にあるのでA列の名前と離れているので選択しても誰の名前の行を選択しているのかわかりにくいので困っていました。 よろしくお願い致します

みんなの回答

  • tsubuyuki
  • ベストアンサー率45% (699/1545)
回答No.4

失礼。 大事なことを説明し忘れておりました。 既にご存知かもしれませんが、念のため。 設定されていたらスルーなさって下さい。 > 実際の表は、点数はC列ではなくもっと右にあるのでA列の名前と離れているので > 選択しても誰の名前の行を選択しているのかわかりにくい のでしたね。 「ウィンドウ枠の固定」という機能はお使いですか? 2007ですと、「表示」タブの真ん中下段辺りにひっそりと位置しています。 画面をスクロールしても「常に」表示しておきたいセルの右下のセルをアクティブにしておいて この「ウィンドウ枠の固定」を設定してやると、その行列を固定し、 スクロールしても常に表示している状態に出来ます。 詳細は http://www.eurus.dti.ne.jp/yoneyama/Excel2007/excel2007-window.html この辺りを参考になさって下さい。 ※色が変わろうが、肝心の「名前」のセルが画面からいなくなったら意味が無いですもんね。

  • tsubuyuki
  • ベストアンサー率45% (699/1545)
回答No.3

#1さんと同様の考え方ですが、 A列以外の任意のセルを選択(アクティブ)にすると アクティブセルと同じ行のA列のセルを水色に塗る(他の行は無色にする)マクロです。 A列のセルを選択(アクティブ)にすると、どこも塗られていない状態に出来ますので、 印刷するときはA列にフォーカスを持っていきましょう。 ワークシートのモジュールに組み込んでお試し下さい。 Private Sub Worksheet_SelectionChange(ByVal Target As Range)     If Target.Column <> 1 Then         Columns(1).Interior.ColorIndex = xlNone         Cells(Target.Row, 1).Interior.ColorIndex = 34     Else         Columns(1).Interior.ColorIndex = xlNone     End If End Sub ちなみに Private Sub Worksheet_SelectionChange(ByVal Target As Range)     If Target.Column <> 1 Then         Cells.Interior.ColorIndex = xlNone         Rows(Target.Row).Interior.ColorIndex = 34     Else         Cells.Interior.ColorIndex = xlNone     End If End Sub こうすると「行全体」を塗ります。

noname#204879
noname#204879
回答No.2

》 A列の名前と離れているので選択しても誰の名前の 》 行を選択しているのかわかりにくいので… 例えば、セル C3(あるいは、3行目のす~っと右のセル)を選択したとき、田中の左の行番号 3 の背景色が若干変わるのではご不満ですか?

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.1

こんにちは! VBAで可能です。 画面左下の操作したいSheet見出し上で右クリック → コードの表示 → VBE画面に ↓のコードをコピー&ペーストしてC列を選択してみてください。 Private Sub Worksheet_SelectionChange(ByVal Target As Range) 'この行から If Application.Intersect(Target, Range("C:C")) Is Nothing Then Exit Sub Range("A:A").Interior.ColorIndex = xlNone Target.Offset(, -2).Interior.ColorIndex = 36 '←薄い黄色にしています。 End Sub 'この行まで ※ C列すべてを対象としていますので、 C2~C5セル限定であれば >If Application.Intersect(Target, Range("C:C")) Is Nothing Then Exit Sub の行を >If Application.Intersect(Target, Range("C2:C5")) Is Nothing Then Exit Sub に変更してみてください。 >実際の表は、点数はC列ではなくもっと右にあるので・・・ とありますので、コード内の「C」列部分を実際の列に変更し、その列から何列左の列の色を変更するか? となるはずですので、 >Target.Offset(, -2) の部分で調整します。m(_ _)m

関連するQ&A

  • エクセルで条件に一致したセルの隣のセルを取得したい

    下のような「得点」という名前のシートがあります。 (「田中」のセルがA1です。)  [ 田中 ][ 10 ][ 200 ]  [ 山田 ][ 21 ][ 150 ]  [ 佐藤 ][ 76 ][ 250 ]  [ 鈴木 ][ 53 ][ 350 ] 別のシートのA1セルに、「佐藤」と入力すると、  [ 佐藤 ] 「得点」シートから「佐藤」の列を見つけて、B1、C1に  [ 佐藤 ][ 76 ][ 250 ] のように表示させたいのですが、B1、C1にはどのような式を書けば良いのでしょうか。 「得点」シートでは氏名が重複する事はありません。 IF文を使うと思うのですが、いまいち良く分かりませんでした。 よろしくおねがい致します。

  • エクセルで、リストから絞込み選択できるようにしたいです。

    学年 グループ 名前 1  A    佐藤 1  A    鈴木 1  B    田中 1  B    伊藤 1  C    山本 1  C    高橋 2  A    中村 2  A    加藤 ・ ・ 3  C    村山 のようなリストがあるとします。 別の空白の表を作りまして 列A 列B   列C 学年 グループ 名前 ・▼ ・▼   ・▼ ・・ ・・   ・・ 列Aはプルダウンで学年「1~3」を選択できるように します。同様に列Bはグループ、列Cは名前を選択できる ようにします。 (入力規則→入力値の種類をリスト→元の値を設定  までは自力でできます・・・) 普通に設定しますと 列Aではプルダウンから「1~3」が選択でき、 列Bではプルダウンから「A~C」が選択でき、 列Cではプルダウンから「佐藤~村山」が選択できます。 実現したいのは、列Cのプルダウンの際に絞込みを することです。 具体的には 列Aのセルでたとえば「1」、列Bのセルで「A」を プルダウンで選択すると、 列Cのプルダウンリストの候補に「佐藤」「鈴木」 だけが出てくるようにしたいのです。 列Aと列Cの間だけ結びつけることはなんとかできます。 (列Aで「1」を選ぶと列Cで「佐藤~高橋」に絞り込む) が、3列パターンにすると全く動きません。。 どなたか教えてください。お願いしますっ。

  • エクセル 特定の文字を含むセルを かえす

    教えてください! 特定の文字を含むセルを返したいのです。 たとえば C1セルに 田中ゆうこ D1セルに 佐藤いちろう E1セルに 酒井みみ F1セルに 鈴木かなえ G1セルに 久保ごう こんな風に横に名前があるデータがあります。 A1セルに「鈴木」と入力したら C1~G1にある「鈴木」とつく名前を検索し、 該当したらB1セルに返したいのです。 この場合 B1セルに 「鈴木かなえ」と返ってほしいのですが どのようにしたら出来るのでしょうか? また、横列の名前の中に同名は存在しません。 どうぞ皆様の知恵をお貸しください! お願いいたします。

  • エクセルのデータ並べ替え(抽出)の方法

    エクセルのデータ並べ替え(抽出)の方法 を教えてください。 下記のようなデータがあるとします。   A    B    C   D 1 田中  東京  千葉  福岡 2 山田  京都  滋賀 3 佐藤  奈良  青森  USA 4 鈴木  カナダ 愛媛 A列は名前、B列以降は文字列です。B列以降はC列までの行、D列までの行とさまざまです。重複セルはありません。 これを下記のように並べ替えたいです。   A    B    C   D 1東京  田中 2千葉  田中 3福岡  田中 4京都  山田 5滋賀  山田 6奈良  佐藤 7青森  佐藤 8USA   佐藤 9カナダ 鈴木 10愛媛  鈴木 こういうことは可能でしょうか??? 教えてください。 よろしくお願いします。

  • Excelの質問

      A   B 1山田 65 2佐藤 77 3田中 77 4小林 90 Aの列を生徒の名前、Bの列をテストの点数とします。上位三名の名前をC1、C2、C3に書き出したいのですがうまくできません。また、この例のように点数が同じ人がランクインしている場合は五十音順になるようにもしたいのですがやり方が分かりません。どなたか教えてくれないでしょうか。

  • エクセル 条件つきで最小値を求めたいです

    A列に200名を超える生徒の名前が入っています。 B列に計算テストの結果が入っています。 計算テストは何度も行われており、A列に何度も同じ生徒の名前が出てきます。A列に入っている生徒の名前は1000を超えます。 A   B 田中  42 佐藤  48 鈴木  52 佐藤  56 田中  72 鈴木  60 鈴木  23 などです。この中で鈴木君のとった得点の最小値は23点ですが、それを求める数式を知りたいです。 『rankif』とか『minif』みたいな関数があればいいのですが、ないですよね。ちなみに、私が使用しているパソコンはexcel2000です。 他のシートやC列から右に生徒を判別する関数を入れていけば、私の知っている知識でも可能なのですが、関数を多用すると重くなりますし、避けたいです。また、もともとのデータの入力の仕方を変えたらいいのですが、それはできない状態です。 =MIN(IF(A2:A7="鈴木",B2:B7),false) みたいな感じかなと式を立てたのですが、うまくいきません。上の状態で、セルに23と表示されるには、どうすればいいか教えてください。お願い致します。m(_ _)m

  • エクセルで、次のような自動入力をしたい

      A    B    C    D   E  ・・ AA 1 田中 鈴木 佐藤          山田 2 鈴木 山田              海岡 3 田中 佐藤              佐藤 というような表があり、AAの列に名前を入力したとき、 D1に「山田」、C2「海岡」と、その行に関してAA列に新規の名前が入力されたときにD1,C2に自動入力することは、VBAで簡単にできますか? 3列目には「佐藤」さんがすでいるので入力不要です。 よろしくお願いします。(マクロ初心者です)

  • Excelでのセルの検索

    セルの検索方法について、質問します。 現在の表       A    B      C     D --+-------+-------+-------+-------+------+-------+------- 1   鈴木   加藤   斎藤    --+-------+-------+-------+-------+------+-------+------- 2   佐藤   清水         --+-------+-------+-------+-------+------+-------+------- --+-------+-------+-------+-------+------+-------+------- 3   山田              --+-------+-------+-------+-------+------+-------+------- 理想形       A    B      C     D --+-------+-------+-------+-------+------+-------+------- 1   鈴木   加藤   斎藤   斎藤 --+-------+-------+-------+-------+------+-------+------- 2   佐藤   清水         清水 --+-------+-------+-------+-------+------+-------+------- --+-------+-------+-------+-------+------+-------+------- 3   山田              山田 --+-------+-------+-------+-------+------+-------+------- 上記のような表(現在の表)で、D列に空白セル以外の一番右のセルを探して表示できるような関数を探しているのですが?。 仕事で進捗表の作成を行っており、困っていますのでよろしくお願い致します。

  • Excel行毎に項目列数の違う表を行列変換したい

    A列に何かしらの名称、B列以降に文字列値があるとします。 鈴木|あああ|いいい|ううう| 佐藤|えええ|   |   | 田中|ううう|かかか|   | ・・・ という表を、 鈴木|あああ 鈴木|いいい 鈴木|ううう 佐藤|えええ 田中|ううう 田中|かかか ・・・ というように変換したいのですが、うまい方法ありませんか?

  • エクセルのセルに入力した名前を数値化

    どなたかご教授頂ければ幸いです。 エクセルの文字列(一覧表)に 田中 田中 鈴木 鈴木 佐藤 田中 田中 佐藤 佐藤 鈴木 佐藤 佐藤 と入力されているものを 集計表に 田中・・・4 鈴木・・・3 佐藤・・・5 とし、集計したいのですが、 名前を数値に読み替える方法がわかりません。 良い方法があればお教えください。 部下の月次訪問件数を容易に集計する方法を模索中です。 余計な入力を部下にさせたくないので、プルダウンで自身の 名前を選ぶだけで入力を完了とし、別の場所に作った 集計表に数値(件数)となって落ちていくものを作りたいと考えています。 よろしくお願いします。

専門家に質問してみよう