重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

Excel2010を使っていて、
行ごとに色を変えたいのですが、

http://nanapi.jp/41747/

このページに書かれてある方法を使えば、これをすることができます。

それで複数のシートに対して
この操作を行いたいのですがどのようにすれば良いですか?


それとこの方法だと、
色を変えた後にセルを移動させたりすると、
色の配列が変更されてしまうのですが
セルを動かしても色が変わらない方法があれば教えてください。

A 回答 (4件)

条件付き書式でご希望の操作をするには、ROW関数で引数を入れない(どのセルも同じ数式)にするのが基本です。


しかし、1行ごとに色を変更したいなら、テーブルの機能を利用することをお勧めします。

リストの上にカーソルを置いてホームタブの「テーブルとして書式設定」を選択してみてください。
書式は一覧から選択するか、必要に応じて「新しいテーブルスタイル」から設定します。

このテーブルの機能を使うと、行を移動したときだけでなく、行を挿入したときにも自動的に書式が追加されるだけでなく、数式が入っていた場合は、数式も自動的に追加されるメリットがあります。

さらに、このテーブルでピボットテーブルを作成すれば、データの追加に対して自動的にデータ範囲を拡大してくれます。
もちろん印刷範囲もデータがある部分だけになりますので、実戦的な運用上のメリットもあります。

他にも、「数式」から「選択範囲から作成」上端行を選択して、このテーブルの項目名で該当列に名前をつけておけば、その名前で自動的にデータ範囲が拡大しますので、無駄がなく数式を簡略化することができます。
    • good
    • 0

 回答No.1です。


 失礼しました、

>セルを動かしても

という箇所の意味を少々勘違いしておりました。
 例えば、Excelシート上のA2:E99のセル範囲に表が作成されていて、その表の一番上の行であるA2:E2のセル範囲は項目欄として使用されている場合において、項目欄の1つ下の行、3つ下の行、5つ下の行・・・という具合に奇数行だけ下の行だけを塗りつぶすという様な場合には、「ルールの内容」の数式欄に入力する数式を次の様にされると良いと思います。

=MOD(ROW()-ROW($A$2:$E2),2)=1

 又、項目欄がどの行にあるのかという事には関係なく、兎に角、行番号が奇数の行に対して塗りつぶしを行うという様な場合には、「ルールの内容」の数式欄に入力する数式を次の様にされると良いと思います。

=MOD(ROW(),2)=1

 同様に行番号が3の倍数となる行に対して塗りつぶしを行うという様な場合には、「ルールの内容」の数式欄に入力する数式を次の様にされると良いと思います。

=MOD(ROW(),3)=0

 同様に行番号が3の倍数となる行の1つ下の行に対して塗りつぶしを行うという様な場合には、「ルールの内容」の数式欄に入力する数式を次の様にされると良いと思います。

=MOD(ROW(),3)=1
    • good
    • 0

こんばんは!



>色を変えた後にセルを移動させたりすると、
>色の配列が変更されてしまうのですが
>セルを動かしても色が変わらない方法

すなわちデータをドラッグ等で移動させても条件付き書式はそのままの状態にしておきたい!
というコトですかね?

ドラッグでセルを移動させてしまうと「書式」も一緒に移動しますので、
VBAで処理する方法です。

仮にA1~G20セルの範囲で条件付き書式を設定したい場合・・・
画面左下の操作したいSheet見出し上で右クリック → コードの表示 → VBE画面に
↓のコードをコピー&ペースト → Excel画面に戻り範囲内のデータを色々変更してみてください。

Private Sub Worksheet_Change(ByVal Target As Range) 'この行から
Dim myRange As Range
Set myRange = Range("A1:G20") '←ここで条件付き書式の範囲を設定
If Intersect(Target, myRange) Is Nothing Then Exit Sub
myRange.FormatConditions.Delete
With myRange
.FormatConditions.Add Type:=xlExpression, Formula1:="=MOD(ROW(),2)=1" '←偶数行の場合は「1」を「0」に!
.FormatConditions(1).Interior.ColorIndex = 36 '←薄い黄色
End With
End Sub 'この行まで

※ これをすべてのSheetで行いたい!というご希望のようですが、
各SheetのChangeイベントになってしまいますので、
コツコツ1Sheetずつコードを貼り付けていく方法になってしまいます。

ご希望の方法でなかったらごめんなさいね。m(_ _)m
    • good
    • 0

 まず、セルを動かしても色が変わらない方法に関してですが、その様な塗りつぶしの仕方を、例えば1行目から始める場合には、「ルールの内容」の数式欄に入力する数式を次の様にされると良いと思います。



=MOD(ROWS($1:1),2)=1

 また、その様な塗りつぶしの仕方を2行目から始める場合には、次の様な数式とします。

=MOD(ROWS($2:2),2)=1

 因みに、塗りつぶしを1行おきに行ない、塗りつぶされる行と塗りつぶされない行が交互に繰り返されるという場合に限っては、「=1」を省略して、次の様な数式としてもOKです。

=MOD(ROWS($1:1),2)


 次に、複数のシートに対して同じ条件付き書式を設定する際には、次の様な操作を行えば良いと思います。

1枚のシートに上記の様な条件付き書式を設定
  ↓
次に、その条件付き書式が設定されているセル範囲をまとめて範囲選択
  ↓
選択範囲を示す黒い太枠の内側にカーソルを合わせてから、マウスを右クリック
  ↓
現れた選択肢の中にある[コピー]をクリック
  ↓
同じ条件付き書式を設定したいシートを複数同時に選択
([Ctrl]キーを押しながらシート見出しをクリックして行くか、[Shift]キーを押しながら"選択したいシートの中の"先頭のシート見出しと末尾のシート見出しを選択しますと、複数のシートを選択出来ます。
 尚、複数選択の状態を解除する際には、未だ選択されていないシートの内の1枚を、どれでも良いので選択するか、或いは、新しいシートを作成して下さい)
  ↓
選択した複数のシート上の、「コピー元となったシートにおいて選択したセル範囲の中の左上の隅に位置にあるセル」と同じセル番号のセルを右クリック
  ↓
現れた選択肢の中にある[形式を選択して貼り付け]をクリック
  ↓
現れた「形式を選択して貼り付け」ダイアログボックスの中にある[書式]と記されている箇所をクリックしてチェックを入れる
  ↓
「形式を選択して貼り付け」ダイアログボックスの[OK]ボタンをクリック

 これで、複数のシートに同じ条件付き書式を設定する事が出来ます。
 尚、条件付き書式を貼り付ける際には、「貼り付けのオプション」内の[値](「123」と記されたクリップボードのアイコン)で行うのではなく、必ず「形式を選択して貼り付け」ダイアログボックスを使って行う様にして下さい。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!