条件付き書式だと、列が多すぎて大変な作業を、VBAでできたらいいなと思っております。
お知恵をお貸しくださいm(_ _)m
A列 田中 佐藤 吉田…
B列 100 200 300…
C列 10% 20% 30%…
D列 松田 田中 鈴木…
E列 500 200 400…
F列 50% 20% 40%…
……
列が横表記になってしまって見辛くて申し訳ないのですが、上記のような列がエクセルの列目一杯まであります。
これを、A列のセルが「田中」だったら、そのセルと隣のB,C列のセルを黄色にする、
更にその次のD,E,F列でも同じことをする、更にその次の3列も、、、
という作業をしたいのですが、どなたかご教示いただけますでしょうか。
条件付き書式で3列ごとに設定していましたが、列数が多すぎてめげました…
こちらで一発解決方法を教えていただけたら、とてもとても助かります。
よろしくお願い致します。
No.10ベストアンサー
- 回答日時:
No8です。
すみません。No8のマクロは削除してください。
1~5行、A,B,C,D,E列も検索対象になっていました。
以下のマクロを標準モジュールに登録してください。
Option Explicit
Public Sub 田中検索()
Dim ws As Worksheet
Dim rg As Range
Dim maxrow As Long
Dim maxcol As Long
Dim wrow As Long
Dim wcol As Long
Application.ScreenUpdating = False
Set ws = ActiveSheet
Set rg = ws.Range("F6").CurrentRegion
maxrow = rg.Row + rg.Rows.Count - 1
maxcol = rg.Column + rg.Columns.Count - 1
For wrow = 6 To maxrow
For wcol = 6 To maxcol
If ws.Cells(wrow, wcol).Value = "田中" Then
ws.Cells(wrow, wcol).Interior.Color = 65535
ws.Cells(wrow, wcol + 1).Interior.Color = 65535
ws.Cells(wrow, wcol + 2).Interior.Color = 65535
End If
Next
Next
Application.ScreenUpdating = True
MsgBox ("完了")
End Sub
ご丁寧にありがとうございます。
おかげで長い長い作業があっという間に終わりそうです。
最初からずっと丁寧に教えてくださった回答者様をベストアンサーに選ばせていただきます。
No.13
- 回答日時:
このような要件の場合、マニュアル操作とマクロのハイブリッドで考えると融通が利いて、便利なことが多いです。
具体的には・・・、今回の場合、下記のような手順になると思います。
①”田中”を検索して、ヒットしたものをすべて選択する。
②選択された全てのセルに対して、さらに右側2セル分を追加で選択する。
③選択されているセルに色を付ける。
上記①と③は、マニュアル操作で行っても手間はかかりません。手作業なので、検索範囲も変えられるし、”中村”だって検索できるし、赤や青の色も付けられます。
しかし、②は手作業では困難なので、ここだけマクロを組みます。
こんな感じです。
Sub sample()
Dim r As Range
For Each r In Selection
Union(Selection, r.Resize(, 3)).Select
Next r
End Sub
ありがとうございます。
マニュアル操作とVBAとどちらも使用する方法もあるのですね。
全てをVBAで記述しなくても、マニュアルでできるところはマニュアルで、とは考えつきませんでした。
できないくせに全てVBAで、、、なんて考えてました。
今後の参考にさせていただきます。
ありがとうございました。
No.12
- 回答日時:
安全運転の為遅いです。
Sub megu()
Dim r As Range, st As String
Dim Findst As String
Findst = "田中" ' 探したい人
Set r = Range("F6", Cells(Rows.Count, Columns.Count)) _
.Find(What:=Findst, LookIn:=xlValues, LookAt:=xlWhole)
If Not r Is Nothing Then
st = r.Address
Do
r.Resize(, 3).Interior.Color = 65535
Set r = Range("F6", Cells(Rows.Count, Columns.Count)).FindNext(r)
Loop Until r.Address = st
End If
Set r = Nothing
End Sub
ありがとうございます。
こちらでも完璧に動きました!
Findという関数?があるのですね。
大変勉強になります。
素晴らしい回答をありがとうございました。
No.11
- 回答日時:
No.7です。
No.9様
そのような事があったのですね。
私の経験ではなぜかVisualBasic(VBA)カテで見かけた事ならありましたので。
でも一体どっちが正解なんでしょう?(ExcelVBAの場合)
No.8
- 回答日時:
以下のマクロを標準モジュールへ登録してください。
Option Explicit
Public Sub 田中検索()
Dim ws As Worksheet
Dim rg As Range
Dim r As Range
Set ws = ActiveSheet
Set rg = ws.Range("F6").CurrentRegion
For Each r In rg
If r.Value = "田中" Then
r.Interior.Color = 65535
r.Offset(0, 1).Interior.Color = 65535
r.Offset(0, 2).Interior.Color = 65535
End If
Next
End Sub
No.5
- 回答日時:
>実際のデータはF6セルから始まります。
>しかも、よく見たら、3列目と次の3列目の間に1列入ってる箇所もありました…
1.そうすると、検索する範囲は、
6行目以降の全行
F列以降の右側前列
(添付図のオレンジ色の範囲)
であってますか。
2.検索する名前は ”田中”で決め打ちでよろしいのですね。
No.4
- 回答日時:
1. Google ドライブ を開き[新規][Google スプレッドシート]を選択して「無題のスプレッドシート」を開く
2. Excelデータを[編集][特殊貼り付け][値のみ貼り付け]で、スプレッドシート上に再現する
3. [ツール][スクリプト エディタ]を選択して、「無題のプロジェクト」を開く
4. 先に入力されているスクリプトを削除して、以下のスクリプト貼り付ける
function myFunction() {
// スプレッドシートを取得する
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();// Container Bound Script
var sheet = spreadsheet.getSheets()[0];// シート数を指定して取得
sheet.clearFormats();
var lastRow = sheet.getLastRow();
// 3ブロック(A~I列)を処理する
for (var col=1; col <= 7; col=col+3) {
var table = sheet.getRange(1, col, lastRow, 3).getValues();
for (var i=0; i < table.length; i++) {
var row = i + 1;
if (table[i][0]=='田中') {
sheet.getRange(row, col, 1, 3).setBackground("#ffff00");//背景色:黄
}
}
}
}
5. [保存]ボタンを押下して、「myFunction」を選び、[▷ 実行]を押下する
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルの条件付き書式で*を使いたい 4 2022/05/13 16:49
- Excel(エクセル) エクセルの条件付き書式 個人シートを参照して集計シートに色付けしたい 1 2023/06/22 00:39
- Visual Basic(VBA) vbaで条件付き書式を設定したときの適用範囲について 1 2023/07/17 23:14
- Excel(エクセル) 条件付き書式の色付きセルのカウント方法について 2 2022/10/21 14:51
- Excel(エクセル) Excel2007での条件付き書式について 6 2023/05/02 10:56
- Visual Basic(VBA) Excel(VBA) 特定の条件に該当する行の値、書式を同じセルにコピ&ペーストしたいです 1 2022/05/21 18:18
- Visual Basic(VBA) Excel VBA 書式変更で困ってます。 オートフィルターの日付フィルターを用いて データの絞り込 2 2022/07/26 22:16
- Visual Basic(VBA) エクセルVBAで『A列』に新規で数値を入力し『B列』から右方向の空白セルにその値を貼り付ける方法 4 2022/11/05 08:37
- Excel(エクセル) エクセルで条件付き書式を使わずにセルの文字の色を変える方法を教えて下さい 8 2023/07/28 01:15
- Excel(エクセル) excel 表計算 加算するセルが空白の時累計を表示しない又は塗りつぶして表示しないようにしたい 4 2023/07/02 11:50
このQ&Aを見た人はこんなQ&Aも見ています
-
これまでで一番「情けなかったとき」はいつですか?
これまでの人生で一番「情けない」と感じていたときはいつですか? そこからどう変化していきましたか?
-
3分あったら何をしますか?
カップ麺にお湯を入れて、できるまでの3分間で皆さんは何をしていますか?
-
治せない「クセ」を教えてください
なくて七癖という言葉どおり、人によっていろいろなクセがありますよね。 あなたには治せないクセがありますか?
-
食べられるかと思ったけど…ダメでした
「この煮物、だいぶ放置しちゃったけど大丈夫かな…」 「食べ物じゃないけど、なんか食べたらすごく美味しそうな気がする」
-
【選手権お題その2】この漫画の2コマ目を考えてください
サッカーのワンシーンを切り取った1コマ目。果たして2コマ目にはどんな展開になるのか教えてください。
-
エクセルマクロで特定の文字を探して隣のセルの色を変える
Excel(エクセル)
-
EXCEL VBA で特定の文字に色をつけるマクロを書きたいのですが
Excel(エクセル)
-
EXCEL VBA セルに既に入力されている文字に文字を追加する
Excel(エクセル)
-
-
4
E列のセルに数値が入れば(空白でなければ)B列の同じ行のセルに色がつく
その他(Microsoft Office)
-
5
エクセルで隣(右or左)のセルと同じ文字色にしたい
Excel(エクセル)
-
6
[初心者です]VBAで指定列からAを検索し、発見したら隣のセルに値0を入れるマクロ。
Access(アクセス)
-
7
【VBA】特定の範囲で同じ値を含むセルの色を変える
その他(Microsoft Office)
-
8
エクセルVBAで、条件に一致するセルへ移動
Excel(エクセル)
-
9
EXCEL VBAで、セルの文字列の前後に文字を入力する方法は?
その他(Microsoft Office)
-
10
あるセルに色を付けた時、別のセルにも同じ色が付く
Excel(エクセル)
-
11
VBAで特定の文字が入力されたセルを選択
Excel(エクセル)
-
12
エクセルVBA:リストに登録した単語と一致する文字色のみを、変更する方法
Excel(エクセル)
-
13
Excelマクロ セルに特定の文字列以外の文字が含まれてたらセルの色を変えたい。
Excel(エクセル)
-
14
別のセルに値が入力されたら、対象のセルの色を変えたいです。
Excel(エクセル)
-
15
エクセルVBAで複数セルの色を変更する方法
Excel(エクセル)
-
16
Excel VBA 空白行があるセル範囲に色を付ける
Excel(エクセル)
-
17
エクセル 特定の文字を入れると他のセルの色が変わる
Excel(エクセル)
-
18
VBAでシート全体の塗りつぶしを解除する
Word(ワード)
-
19
指定した文字があった場合、その行を削除するマクロが欲しいです
Excel(エクセル)
-
20
EXCEL VBA で複数の特定文字に色をつけたい
その他(Microsoft Office)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・「みんな教えて! 選手権!!」開催のお知らせ
- ・漫画をレンタルでお得に読める!
- ・「黒歴史」教えて下さい
- ・2024年においていきたいもの
- ・我が家のお雑煮スタイル、教えて下さい
- ・店員も客も斜め上を行くデパートの福袋
- ・食べられるかと思ったけど…ダメでした
- ・【大喜利】【投稿~12/28】こんなおせち料理は嫌だ
- ・前回の年越しの瞬間、何してた?
- ・【お題】マッチョ習字
- ・モテ期を経験した方いらっしゃいますか?
- ・一番最初にネットにつないだのはいつ?
- ・好きな人を振り向かせるためにしたこと
- ・【選手権お題その2】この漫画の2コマ目を考えてください
- ・2024年に成し遂げたこと
- ・3分あったら何をしますか?
- ・何歳が一番楽しかった?
- ・治せない「クセ」を教えてください
- ・【大喜利】【投稿~12/17】 ありそうだけど絶対に無いことわざ
- ・【選手権お題その1】これってもしかして自分だけかもしれないな…と思うあるあるを教えてください
- ・集合写真、どこに映る?
- ・自分の通っていた小学校のあるある
- ・フォントについて教えてください!
- ・これが怖いの自分だけ?というものありますか?
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・10代と話して驚いたこと
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで二つの数字の小さい...
-
PowerPointで表の1つの列だけ...
-
エクセル 文字数 多い順 並...
-
オートフィルターをかけ、#N/A...
-
エクセルで最初のスペースまで...
-
エクセルの項目軸を左寄せにしたい
-
EXCELで 一桁の数値を二桁に
-
2つのエクセルのデータを同じよ...
-
文字列に数字を含むセルを調べたい
-
B列の値がA列にあるかを調べる関数
-
列内の最初に現れる数字の入っ...
-
Excelで半角の文字を含むセルを...
-
お店に入るために行列に並んで...
-
Excel関数(通常はA列優先で、...
-
エクセル 時間帯の重複の有無
-
エクセル ひらがなの文字を抽出
-
エクセル(勝手に太字になる)
-
エクセルVBAで日付に合わせて図...
-
ExcelVBA でリストリストボック...
-
エクセルの表から正の数、負の...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで二つの数字の小さい...
-
PowerPointで表の1つの列だけ...
-
エクセル 文字数 多い順 並...
-
エクセルで最初のスペースまで...
-
Excelで半角の文字を含むセルを...
-
2つのエクセルのデータを同じよ...
-
エクセル(勝手に太字になる)
-
エクセルの項目軸を左寄せにしたい
-
文字列に数字を含むセルを調べたい
-
エクセルの表から正の数、負の...
-
エクセルで文字が混じった数字...
-
EXCELで 一桁の数値を二桁に
-
VBAで文字列を数値に変換したい
-
Excel、市から登録している住所...
-
エクセルで一列おきに空白列を...
-
オートフィルターをかけ、#N/A...
-
「B列が日曜の場合」C列に/...
-
エクセル 時間帯の重複の有無
-
Excel 文字列を結合するときに...
-
エクセルの並び変えで、空白セ...
おすすめ情報
分かりづらくて申し訳ありません。
エクセルVBAで作れるとありがたいです。
また、データの前に見出しやら何やらが5行目まであり、実際のデータはF6セルから始まります。
しかも、よく見たら、3列目と次の3列目の間に1列入ってる箇所もありました…
例えば、全列を上から下に「田中」が入っているか探して、あったら該当のセルと、その隣のセル、更にその隣のセルの3セルを黄色にする、というVBAはできますでしょうか?
「田中」のセルとその隣2セルの計3セルを黄色にするという条件は常に一緒です。
また、使用タイミングは今回の一度きりですが、同じようなファイルがたくさんあって、全ふぁいに色付けが必要です。
なので、ひとつVBAを組んでいただける大変助かると思い、質問させていただきました。
いろいろ分かりづらい点が多くて申し訳ありません。
どうぞよろしくお願い致します。
tatsumaru77様、その通りでございます。
F列以降の右側全列を検索、検索値は「田中」で決め打ちで大丈夫です。
「田中」の列と隣の2列の全3列は必ず並んでいます。
3列、3列、空白列、3列、、、
みたいな感じで横にずっと連なっている状態です。
ものすごい量で途方に暮れています…
何卒よろしくお願い致します。