
(画像参照)
横に名前、縦に日付の入った表で担当欄(C列)を埋めるVBA等の書き方が分からず困っています。
緑色に色付けしたセルが該当日の担当者を示しています。(4月1日高橋、2日佐藤、3日田中、4日高橋、5日鈴木、6日鈴木、7日田中)
担当欄(C列)に4行目の値(苗字)が返される(D5:G11の範囲のどこかのセルに緑色の塗りつぶしをするとC列に対応する苗字が表示される)ようにしたいのですが、関数やVBAでなにか解決策はありますでしょうか。
13行目は苗字ごとの緑セルの数をColorCountで数えたものです。
こちらの検索値(緑セル)を表の外につくりましたが(B2セル)、ほかに何かいい方法がありましたらそちらも教えて頂けると幸いです。
※colorcountの式は様々なサイトを参照して以下の様に書きましたが、それぞれどのように動いているのかは理解できていません。
Function Colorcount(R1 As Range, C As Range)
Dim r As Range
Application.Volatile
Colorcount = 0
For Each r In R1
If r.Interior.Color = C.Interior.Color Then
Colorcount = Colorcount + 1
End If
Next r
End Function

A 回答 (6件)
- 最新から表示
- 回答順に表示
No.6
- 回答日時:
下の関数を試してみてください。
'[関数]
=GETSTAFFNAME(担当者リスト,塗りつぶしを探すセル範囲,色を指定するセル)
(例)=GETSTAFFNAME($C$4:$F$4,C5:F5,$B$2)
'[機能]
'指定した色で塗りつぶしたセルに対応する担当者名を返す
'[引数]
'R1 担当者の名前が入ったセル範囲
'R2 色付けしてあるセルを探すための対象になるセル範囲
'R3 色を指定するためのセル
Function GETSTAFFNAME(R1 As Range, R2 As Range, R3 As Range) As String
Application.Volatile
Dim r As Range
'対象のセル範囲に含まれるセルを一つ一つ調べる
For Each r In R2
'現在のセルの色が指定した色と同じ場合
If r.Interior.Color = R3.Interior.Color Then
'対応する担当者名を返す
'この関数 = セル(行番号, 列番号).中身
GETSTAFFNAME = Cells(R1.Row, r.Column).Value
'処理を抜ける
Exit Function
End If
Next r '次のセルへ
End Function
No.5
- 回答日時:
色をつけたセルの位置を判別するのは、できるのかもしれませんが困難です。
(少なくとも私には無理)色付けの代わりに何か文字を入力すればよいだけと思います。
自分ならこうするというのを、以下に紹介します。
セルの配置は質問文と同じとします。
添付図参照です。
◆手順
1.色付けされているセルに0(ゼロ)を入力します。
○(マル)とかでもよいのですが、漢数字や記号など類似のものがあるのでゼロがよいです。0なら全角で入力しても半角に修正されます。
2.C5セルに『=OFFSET(C5,MATCH("担当",C:C,0)-ROW(),MATCH(0,D5:G5,0))』を入力して、下方向に必要なところまでコピペします。
3.これで完成です。
※同じ日付に複数入力されていたら、最も左側に入力されているものになります。

No.4
- 回答日時:
No2です
No3様のご意見にまったく同感です。
>私自身VBAの知識は全くなく、~~(通例の関数でしたら理解できます。)
であればなおさらのこと、関数で処理すれば宜しいのでは??
関数での処理が不可能(あるいは難しい)内容であれば、VBAを利用することは妥当だと思いますが、どちらでもできる内容を(理解もできない)VBAで解決しようとすることには疑問です。
とは言え、どのような方法を採用するのかは、質問者様のご自由ではありますけれど・・・
No.3
- 回答日時:
ハナシの腰を折るようですが
知識がないなら ここで得た回答をそのままコピペし、
意図しない処理が行われていても気づかないケースがあるでしょう
サンプルコードを自分の環境に合わせて修正できるスキルが
最低限無いのであれば やめたほうがいいと思います
特に その結果を信用して物事が動くような場合
問題となると思います
そうなっても自身で対応出来ませんよね?
これは実際によく聞くケースです
No.2
- 回答日時:
こんにちは
VBAで処理をなさりたいなら、普通に処理をすれば、該当色のセルをカウントしたり、名前の表示はできるものと思います。
ただし、ご提示の関数ではVolatileに設定しているようですが、シート内のどこかのセルの値を変えないと再計算されませんので、表内のセル色を変えただけでは計算結果に即時反映はされないものと思います。
また、シート内の(表と関係のない)部分の入力に対して、毎回(同じことを)再計算しますので、効率が悪いとも言えます。
以下は、通常の関数のみでも簡単に処理できる、別の方法の一例です。
まず、色の付け方の仕組みを変えます。
(関数ではセルの色は調べられないため)
表内のセルに条件付き書式で、「値(例えば1)を入力したら、文字色、背景色ともに緑色」のような設定をしておきます。
(色を変えるよりも、値を入力・消去する方が操作も簡単ではないかと思います)
上記の仕組みにより、セルに1を入力すればご提示の図の様な表が表示できます。
13行目の集計は、単純にセル範囲の合計を取れば良いので、SUM関数やCOUNT関数で算出できます。
C列の担当者名は、セル位置をMATCH関数やSUMPRODUCT等で調べられますので、これを利用してINDEX関数で算出が可能です。
No.1
- 回答日時:
セルを1つづつ調べていき
緑色だったらカウントを1つ繰り上げる
というコードですが
カウントの結果を表示するものが無いので
これを実行しても何も起きません
また、無用なセルを調べるため 無駄な時間がかかります
調べる範囲は限定すべきです
また、色で判定はあまりいい方法ではありません
入力者が 色付けをする場合
緑色でも 1つではなく いっぱいあり
誤判定に繋がるからです
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
セルに特定の色が付いていたら計算式を発動したい
Excel(エクセル)
-
Excel VBA で色付きのセルの値を取得する
Excel(エクセル)
-
エクセルの色も=イコールできますか?
Windows Me・NT・2000
-
-
4
【Excel】 セルの色での判断はできますか?
Excel(エクセル)
-
5
エクセル 背景色のついたセル位置を参考にして固定の数値を取得する
会計ソフト・業務用ソフト
-
6
Excelのセルの色を変えた行(すべてのシート)を別シートに抽出したい
Excel(エクセル)
-
7
あるセルに色を付けた時、別のセルにも同じ色が付く
Excel(エクセル)
-
8
背景色の有無を判断をして別のセルに「1」と入力
Excel(エクセル)
-
9
excelのデータで色つき行の抽出方について教えてください
Excel(エクセル)
-
10
【Excel】色が付いているセルの値をクリアしたい
Excel(エクセル)
-
11
Excel 書式を関数で判断。
Excel(エクセル)
-
12
excel 参照しているセルに色がついていたら、返すセルにも色もつける
その他(コンピューター・テクノロジー)
-
13
色のついたセルにフラグを立たせることはできるでしょうか?
Word(ワード)
-
14
リストと一致する値のセルを塗りつぶしたい。
その他(Microsoft Office)
-
15
エクセルで隣(右or左)のセルと同じ文字色にしたい
Excel(エクセル)
-
16
Excelでセル参照したとき、書式も一緒に持ってくるには?
Windows Vista・XP
-
17
エクセルで色の付いたセルを抽出したいです
Excel(エクセル)
-
18
あるセルに特定の文字列を打つと、他のセルに決められた文字が自動入力するように
Excel(エクセル)
-
19
特定の色のついたセルを削除
Visual Basic(VBA)
-
20
文字の色も参照 VLOOKUP
Access(アクセス)
関連するカテゴリからQ&Aを探す
今、見られている記事はコレ!
-
弁護士が解説!あなたの声を行政に届ける「パブリックコメント」制度のすべて
社会に対する意見や不満、疑問。それを発信する場所は、SNSやブログ、そしてニュースサイトのコメント欄など多岐にわたる。教えて!gooでも「ヤフコメ民について」というタイトルのトピックがあり、この投稿の通り、...
-
弁護士が語る「合法と違法を分けるオンラインカジノのシンプルな線引き」
「お金を賭けたら違法です」ーーこう答えたのは富士見坂法律事務所の井上義之弁護士。オンラインカジノが違法となるかどうかの基準は、このように非常にシンプルである。しかし2025年にはいって、違法賭博事件が相次...
-
釣りと密漁の違いは?知らなかったでは済まされない?事前にできることは?
知らなかったでは済まされないのが法律の世界であるが、全てを知ってから何かをするには少々手間がかかるし、最悪始めることすらできずに終わってしまうこともあり得る。教えてgooでも「釣りと密漁の境目はどこです...
-
カスハラとクレームの違いは?カスハラの法的責任は?企業がとるべき対応は?
東京都が、客からの迷惑行為などを称した「カスタマーハラスメント」、いわゆる「カスハラ」の防止を目的とした条例を、全国で初めて成立させた。条例に罰則はなく、2025年4月1日から施行される。 この動きは自治体...
-
なぜ批判コメントをするの?その心理と向き合い方をカウンセラーにきいた!
今や生活に必要不可欠となったインターネット。手軽に情報を得られるだけでなく、ネットを介したコミュニケーションも一般的となった。それと同時に顕在化しているのが、他者に対する辛らつな意見だ。ネットニュース...
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Dir関数のDo Whileステートメン...
-
【マクロ】【画像あり】ファイ...
-
5単位で繰り上げしたい
-
【マクロ】【画像あり】4つの...
-
【マクロ】【画像あり】4つの...
-
Excelで4択問題を作成したい
-
【マクロ】数式を入力したい。...
-
エクセルのVBAで集計をしたい
-
vba テキストボックスとリフト...
-
エクセルのリストについて
-
Office2021のエクセルで米国株...
-
【マクロ】【配列】3つのシー...
-
【マクロ】左のブックと右のブ...
-
【マクロ】元データと同じお客...
-
【マクロ】【相談】Excelブック...
-
【マクロ】実行時エラー '424':...
-
セルにぴったし写真を挿入
-
オートフィルターの絞込みをし...
-
他のシートの検索
-
【画像あり】オートフィルター...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【マクロ】元データと同じお客...
-
エクセルの関数について
-
【画像あり】オートフィルター...
-
エクセルのVBAで集計をしたい
-
エクセルのリストについて
-
【マクロ】数式を入力したい。...
-
【マクロ】【相談】Excelブック...
-
Office2021のエクセルで米国株...
-
【マクロ】実行時エラー '424':...
-
他のシートの検索
-
エクセルの複雑なシフト表から...
-
【マクロ】【配列】3つのシー...
-
vba テキストボックスとリフト...
-
【マクロ】左のブックと右のブ...
-
【マクロ】変数に入れるコード...
-
エクセルシートの見出しの文字...
-
【マクロ】別ファイルへマクロ...
-
【関数】同じ関数なのに、エラ...
-
Amazonでマイクロソフトオフィ...
-
ページが変なふうに切れる
おすすめ情報
説明不足で申し訳ございません。
私自身VBAの知識は全くなく、設定している関数がどのように動いているか、どこがどう不自然なのかも見当がつきません。(通例の関数でしたら理解できます。)
具体的にどのような関数をどのように並べて用いるべきか、VBAの書き方など例示していただけると非常に心強いです。
業務の効率化のためなのですが、色付けでの判断は変更ができずこのような形になっております。
厚かましいお願いにはなりますがよろしくお願い致します。