Sheet1に リストとして
A B C D
--+-------+-------+-------+-------+------+-------+-------
1 山田
--+-------+-------+-------+-------+------+-------+-------
2 鈴木
--+-------+-------+-------+-------+------+-------+-------
3 佐藤
--+-------+-------+-------+-------+------+-------+-------
4 内藤
Sheet2に 一覧表として
A B C D
--+-------+-------+-------+-------+------+-------+-------
1 山田 赤松 斎藤 内藤
--+-------+-------+-------+-------+------+-------+-------
2 佐藤 清水 鈴木 米田
--+-------+-------+-------+-------+------+-------+-------
3 上田 今川 藤本 越崎
--+-------+-------+-------+-------+------+-------+-------
4 千葉 尾崎 松田 安西
と、作成した場合、Sheet1のリストにある名前のみ
フォントカラーを赤にするマクロを組んでいただきたいのですが・・・
宜しくお願いします。
No.3ベストアンサー
- 回答日時:
短いのを1つ。
Sub test01()
Dim sh1, sh2 As Worksheet
Dim cl As Range
Set sh1 = Worksheets("sheet1")
Set sh2 = Worksheets("sheet2")
d = sh1.Range("A1").CurrentRegion.Rows.Count
For Each cl In sh2.Range("A1").CurrentRegion
For j = 1 To d
If sh1.Cells(j, "A") = cl Then
cl.Interior.ColorIndex = 6
End If
Next j
Next
End Sub
丸投げ的な質問だが、SetやForEach、CurrentRegionなど及び本番データでどこをどう修正するか判りますでしょうか。
回答有難うございます。
修正の仕方はわかります。
やりたかったことが目の前で展開されていきました。
丸投げを心より、反省し、それでも答えて下さった皆様に、感謝の気持ちでいっぱいです。
本当に、本当に有難うございました。<m(__)m>
No.2
- 回答日時:
確かに丸投げはあんまり良くありませんね。
ちょっと考えてこんな風に書いてみたけどどうですか?というくらいの方が答えが返って来易いと思いますよ。
僕もあまり上手いコードは書けませんが,それなりに動くものを作ってみました。きっともっと効率の良い方法があると思いますが・・・
このコードでは,Sheet2のマトリックスの行,列方向の各最大値を計算するのが面倒だったので(歯抜け等を考え出すときりがないので),1個ずつセルをずらしてセルが空白になるまでリストとの比較をしています。よって,最大値の行列が真四角に全部埋まってないと正常に動きません。
リストの長さ判定と同じように行列の各最大値を求めてFOR文で回しても同じ結果になりますが・・・先に思いついた方でやっちゃいました。眠いのでここまでとします(笑)。
あと,このOKWEBのフォームの仕様上,コードのインデントが全部解除されて見難いですがご勘弁を。
Option Explicit
Option Base 1
Sub 名前検索()
Dim strNameList() As String 'Sheet1のリスト格納用配列
Dim intListLength As Integer 'Sheet1のリストの長さ
Dim i As Integer 'ループ用
Dim strCheckValue As String 'リストと比較されるSheet2のセル内の文字
Sheets("Sheet1").Activate
'Sheet1のリスと最終行の行数(=リストの長さ)を調べる
intListLength = Cells(1, 1).End(xlDown).Row
ReDim strNameList(intListLength) 'リスト格納用配列の再宣言
'リストの全名前を配列に格納
For i = 1 To intListLength
strNameList(i) = Cells(i, 1).Value
Next i
Sheets("Sheet2").Activate
'アクティブなセルをセル"A1"から右に1つずらしながら
'セルが空白になるまで調査し,リストと一致したらフォントを
'赤に変える。
'右端のセルまで調査したら(空白になったら)1行下の左端へ
'ずらして繰り返し。下方向へもセルが空白になるまで繰り返し。
Cells(1, 1).Activate
strCheckValue = Cells(1, 1).Value
Do Until ActiveCell.Value = ""
Do Until ActiveCell.Value = ""
strCheckValue = ActiveCell.Value
For i = 1 To intListLength
If strCheckValue = strNameList(i) Then
ActiveCell.Font.ColorIndex = 3
Exit For
End If
Next i
ActiveCell.Offset(0, 1).Activate
Loop
Cells(ActiveCell.Row + 1, 1).Activate
Loop
End Sub
丸投げ、反省しております。<m(__)m>
眠い中、回答頂き有難うございました。
感謝しております。
それぞれ、大変丁寧に記述して頂き、勉強になりました。
今後は質問の書き方も勉強していきます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 野球 世界一ですか 4 2022/11/11 06:17
- 野球 日本代表 これで世界一ですか 2 2022/11/11 05:59
- 野球 世界一ですか 2 2022/11/11 06:15
- Excel(エクセル) EXCEL 関数を教えてください。(A列の同じ値が複数ある場合vlookupで出来ますか) 4 2022/12/07 20:54
- 野球 この中で1番凄いのはどれ? 5 2022/12/31 17:30
- 野球 高校野球の話 1 2022/08/18 09:54
- タレント・お笑い芸人 種なし 2 2022/06/22 00:30
- 野球 佐々木朗希投手はどのくらいまでの投手になるでしょうか? ①稲尾、金田、江夏など往年のレジェンドレベル 2 2023/02/10 10:04
- バラエティ・お笑い カラオケバトルの次の出演者の中で歌唱力も魂のこもりようも表現力も抜群と思う人を上位から 1 2022/05/04 14:04
- 新幹線 【鉄道】全国にある新幹線の駅の格付けランキングを作ってみました!皆様のご意見をよろしくお願いします。 1 2023/02/11 16:42
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
IF関数で空欄("")の時、Null...
-
数式による空白を無視して最終...
-
空白セル内の数式を残したまま...
-
ピボットテーブルで空白セルの...
-
excel2010 空白セルにのみ貼り...
-
「データ要素を線で結ぶ」がチ...
-
エクセルでCSVを編集するとき、...
-
エクセルで、「複数のセルの中...
-
Excel > ピボットテーブル「(空...
-
エクセル 連番が途切れていると...
-
Excelで、入力文字の後に自動で...
-
SUMIFS関数で「計算式による空...
-
形式貼り付けの「空白を無視す...
-
VBA スペースが入力されて...
-
3列ごとに合計を出したい
-
エクセルにて負の時間を0:00と...
-
VLOOKUP関数について
-
エクセルのグラフで式や文字列...
-
【Excel】 Ctrl+方向キー で空...
-
《Excel2000》SUMPRODUCT関数で...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
IF関数で空欄("")の時、Null...
-
数式による空白を無視して最終...
-
excel2010 空白セルにのみ貼り...
-
エクセルでCSVを編集するとき、...
-
「データ要素を線で結ぶ」がチ...
-
Excelで、入力文字の後に自動で...
-
ピボットテーブルで空白セルの...
-
エクセル 連番が途切れていると...
-
関数TRANSPOSEで空白セルを0に...
-
空白セル内の数式を残したまま...
-
Excel > ピボットテーブル「(空...
-
エクセルで、「複数のセルの中...
-
SUMIFS関数で「計算式による空...
-
空白を0とみなす関数
-
【Excel】 csvの作成時、空白セ...
-
エクセルで上の行の値を自動的...
-
《Excel2000》SUMPRODUCT関数で...
-
一列の中の金額を他のセルに
-
形式貼り付けの「空白を無視す...
-
エクセルで空白文字の前後を入...
おすすめ情報