![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
No.5ベストアンサー
- 回答日時:
こんにちは
>自動で同じ数字別に色分けされたいです。
他の方の回答にあるように「条件付き書式」でできますが、色って似た色がいろいろあるので、どの順番でどういう色にするかとか、事前に何色の種類を用意しておくかなどといった問題があります。
この問題に関しては、どのような方法をとるにしても、付いてくるものと言えます。
それを了解の上でなら・・・
対象シートの、「シートモジュール」に以下のマクロをコピペすれば、実現可能と思います。
※ 色に関しては、エクセルのColorIndexのカラーパレットから適当に20色を選定してあります。
(もしもパレットを変更なさっている場合は、その色が採用されます)
※ ナンバーの種類が設定の色数を超えた場合は、最初に戻って同じ色を使用します。
※ 色数を増減したり色を変えたい場合は、5行目のiColorの設定を変えることで可能です。
Private Sub Worksheet_Change(ByVal Target As Range)
Dim dic, iColor, c, txt, cIndex, tIndex
If Intersect(Columns(1), Target) Is Nothing Then Exit Sub
iColor = Array(4, 6, 7, 8, 17, 19, 20, 22, 24, 33, _
35, 37, 38, 39, 40, 43, 44, 45, 46, 50)
Columns(1).Interior.Color = xlNone
Set dic = CreateObject("Scripting.Dictionary")
cIndex = 0
For Each c In Range(Cells(2, 1), Cells(Rows.Count, 1).End(xlUp))
txt = c.Text
If txt <> "" And c.Row > 1 Then
If dic.exists(txt) Then
tIndex = dic(txt)
Else
tIndex = cIndex
cIndex = (cIndex + 1) Mod (UBound(iColor) + 1)
dic.Add txt, tIndex
End If
c.Interior.ColorIndex = iColor(tIndex)
End If
Next c
End Sub
No.4
- 回答日時:
ちょっと手間がかかりますが、条件付き書式 でできると思います。
1)A1~A13を範囲選択
2)条件付き書式→新しいルール→数式を使用して、書式設定するセルを決定
3)次の数式を満たす・・・ の欄に =$A1="101-22222222"
4)プレビューの[書式]をクリックし、塗りつぶしタブ で背景色に紫を選択 [OK]→[OK]
5)条件付き書式→ルールの管理→新規ルール→数式を使用して、書式設定するセルを決定
6)3)~4)と同様に101-33333333のときに赤を選択
7)5)~6)を101-44444444で黄色 101-55555555で青 に設定
![「エクセルに関する質問です。 下記表をご覧」の回答画像4](http://oshiete.xgoo.jp/_/bucket/oshietegoo/images/media/e/249487_600b8a09a46e6/M.jpg)
chiune様、ご回答ありがとうございます。
私の説明不足ですみません。
この数字は毎回変わるもので、その都度同じ値を検索して自動的に同じ値が同じ色に変わるようにしたかったんです(>人<;)
お忙しい中、ご回答ありがとうございました!!
No.3
- 回答日時:
VBAの回答を待つしかないねー。
質問が古くなったら、締め切って再投稿だねー。
No.2
- 回答日時:
すると、こうなる。
色を増やしたければカラーコード0〜3を増やせばいい。![「エクセルに関する質問です。 下記表をご覧」の回答画像2](http://oshiete.xgoo.jp/_/bucket/oshietegoo/images/media/d/542931707_600b83121feb7/M.png)
Andro様、丁寧なご説明ありがとうございました。Googleドライブは何か、というレベルだったので、先程調べてみました。
そんな便利な機能があるんですね。しかしながら会社でそういう類の機能を禁止されている為、今回の方法では難しいかもしれません。の人的なことならいいかもしれないんですが。。。
今使用しているこの共有ファイル上でエクセル関数など使ってできる方法であれば問題ないと思うのですが。。。
教えて頂いた内容は、また別の機会に使わせていただきます。勉強になりました!
ありがとうございます!
No.1
- 回答日時:
1. Google ドライブ を開き、[新規][Google スプレッドシート]を選択するとスプレッドシートが開く。
2. 質問通りの文言をシートに入力する。
3. スプレッドシートの[ツール][スクリプトエディタ]を選択すると「無題のプロジェクト」が開く。
4. 入力済みの文字を削除して、以下のスクリプトをコピー、[保存]する。
// 同じナンバーのセルに同じ色を付ける
function myFunction() {
// スプレッドシートを取得する
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();// Container Bound Script
var sheet = spreadsheet.getSheets()[0];// シート数を指定して取得
var lastRow = sheet.getLastRow();// 最終行
sheet.clearFormats();
// ナンバー列を読み込む
var deleteNum = [];
var designTable = sheet.getRange(2, 1, lastRow-1, 1).getValues();
// 同一ナンバーを検索する
for (var i=0; i < designTable.length-1; i++) {
for (var j=i+1; j < designTable.length; j++) {
//Logger.log(i +':'+ designTable[i][0] +' vs ' + j +':'+ designTable[j][0]);
// 削除ナンバー(行)を整理する
if (designTable[i][0]==designTable[j][0]) {
for (var x=0; x <= deleteNum.length; x++) {
if (deleteNum[x]==i) {
break;
}
}
if (x>deleteNum.length) { deleteNum.push(i); }
}
}
}
// 同一ナンバーを削除する
for(var i=0; i < deleteNum.length; i++){
designTable.splice(deleteNum[i]-i, 1);
}
// 背景色をつける
var table = sheet.getRange(2, 1, lastRow-1, 1).getValues();
for (var i=0; i < table.length; i++) {
for (var j=0; j < designTable.length; j++) {
if (table[i][0]==designTable[j]) {
sheet.getRange(i+2, 1).setBackground(getColor(j));// 背景色:4色まで
}
}
}
}
// カラーテーブルから色を取得する(4色まで)
function getColor(number) {
var colortable = [
[0, '#ffff00'],// 黄
[1, '#ff0000'],// 赤
[2, '#00ffff'],// シアン
[3, '#9900ff'],// 紫
];
for (var i=0; i < colortable.length; i++) {
if (number==colortable[i][0]) {
return colortable[i][1];
}
}
return '#ffffff';
}
5. ツールバーから[myFunction]を選んで[▷実行]を押下する。
![「エクセルに関する質問です。 下記表をご覧」の回答画像1](http://oshiete.xgoo.jp/_/bucket/oshietegoo/images/media/1/542931707_600b822ca6d2a/M.png)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセル関数の質問 5 2022/04/20 09:46
- Visual Basic(VBA) 特定の文字を条件に指定範囲のデータを貼り付けるVBA 3 2023/01/15 06:14
- Excel(エクセル) エクセルの祝日に色が反映しない 4 2022/05/18 09:58
- Excel(エクセル) Excel2019 列と列(2列)の数値の重複を調べたい 1 2023/05/11 13:35
- Excel(エクセル) 条件に合った数値の合計を表示させたい関数と条件指定の方法 3 2023/05/13 16:07
- Excel(エクセル) セルに特定の色が出た時だけ、式を発動させたい 4 2022/06/17 10:32
- Excel(エクセル) 条件付き書式 別のシートで色付けされたセルデータの転記漏れを防ぐ書式を入れたい 4 2022/04/22 06:36
- Excel(エクセル) エクセルの条件付き書式で*を使いたい 4 2022/05/13 16:49
- Excel(エクセル) エクセルの条件付き書式について エクセルでカレンダーを作りました。縦に日付が並んでいて、横にスケジュ 3 2022/10/10 15:32
- Excel(エクセル) Excel2007での条件付き書式について 6 2023/05/02 10:56
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
セルを結合したA4とA5の条件付...
-
excel:条件付き書式の適用範囲...
-
色のリンクは出来ますか?【エク...
-
EXCELで2つの条件設定で別のセ...
-
左列の文字の色と同じ文字の色...
-
(エクセル)該当の場合、自動で...
-
エクセル 条件付書式で時刻の...
-
エクセル 条件付き書式が反映さ...
-
スプレッドシートにて、条件付...
-
エクセルで行ごとの色分けと曜...
-
Excel2010 日付列を結合した予...
-
条件付き書式のやり方。隣のセ...
-
Excelで社歴管理をしており4年...
-
A1セルに入力したら、入力時間...
-
エクセルの複数のセルを一括で...
-
複数の条件に合う行番号を取得...
-
お肉の下のシートを煮込んでし...
-
エクセルで既に入力してある文...
-
Excelの入力規則で2列表示したい
-
エクセルで日付から日にちを削...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
セルを結合したA4とA5の条件付...
-
excel:条件付き書式の適用範囲...
-
色のリンクは出来ますか?【エク...
-
ある倍数だけを塗りつぶす方法 ...
-
Excelで表を作り、自動で今月の...
-
Excelで社歴管理をしており4年...
-
左列の文字の色と同じ文字の色...
-
条件付き書式のやり方。隣のセ...
-
エクセル 条件付書式で時刻の...
-
エクセルの折られたセルを戻したい
-
数字を入力するとセルに色が付...
-
Excelの塗りつぶしの反映
-
【Excel】ガントチャートの作成...
-
EXCELで2つの条件設定で別のセ...
-
Excelで隣のセルを参照し...
-
Excelで、期限切れのリストが一...
-
エクセルの条件付き書式による...
-
エクセルで
-
条件付き書式設定で色をつけた...
-
エクセル2010の書式の条件設定...
おすすめ情報