エクセルを使って、1日24時間毎の数値を整理しています。

1日のお終りを意味する24行目をカラーにすると
見やすくなるため、24行目毎にカラーの背景色を出したいのです。

1回の設定で約9000行(1年365日×24時間分)の表に
カラーをつける方法を教えていただければ
助かります。
カラーは、薄い緑とか、青をイメージしています。
(過去の質問を見ましたが、ありませんでした)

このQ&Aに関連する最新のQ&A

A 回答 (8件)

マクロや条件付書式設定が順当な方法だとは思いますが


データ量が多くなると結構負荷が掛ってしまいます。
(9000件ならある程度パワーのあるPCなら大丈夫とは思いますが)
今後該当EXCELブックにシートや計算式の追加が有るのであれば
単純に書式設定をされた方が良いと思われます。

データ内容的に全ての行が同じ書式で有ると思われますので
以下の方法がお薦めです

1)1行目からデータが入力されているとして・・
  24行目の色をつけたいセル範囲を選択し、書式設定でパターン色を設定します

2)1~24行を行番号で範囲選択し、右クリックでコピーを選択

3)25~8784行(366*24)を行番号で範囲選択し行番号上で右クリックし
  [形式を選択して貼り付け]で[書式]を指定し[OK]をクリック
    • good
    • 0
この回答へのお礼

xxsadayanxx 様

ご回答、ありがとうございます。

ご指示いただきました方法は、一番簡単で
数式も壊さず、時間も掛からず、最適でありました。

今後は、この作業方法で進みます。

教えていただき、大変助かりました。

お礼日時:2002/04/07 14:53

書き込み時には、記事#5までだたのですが


送信時に確認しないでUPしたために・・・
#6xxsadayanxxさんの記載と完全にかぶった内容で
UPしてしまいました 失礼しました。
    • good
    • 0

こんにちは



9000行に対して、一定間隔で不変的な塗つぶしを
設定するのでしたら、直接的な設定の方がよろしいかと
思います。

最初の24行目を書式設定で好きなカラーで塗った後
・その1~24行を選択コピー
・直下行(25行目)を選択した後
 [Ctrl]+[Shift] をおしたまま [↓]キー
 で空き行がない限りデータ最終行まで選択されます。
・その状態で 編集 形式を選択した貼り付け 書式

で24行毎の塗つぶしの書式が複写されます。
    • good
    • 0
この回答へのお礼

comv 様

comv様の方法が一番簡単でやりやすいことを
#6の回答者様のテストで確認できました。

まことに、気が引けますが、時間的に早い方に
ポイントを差し上げることにしますので、
お気を悪くお思いにならないでください。

お世話になり、お時間をとらせてすみませんでした。
そして、ご回答をありがとうございました。

お礼日時:2002/04/07 14:59

これだけの行数があると条件付き書式を使うのは考えてしまいますね。


条件付き書式の判定についてはRow()なので、計算負荷は余りないかもしれませんが、色を付ける列数が増えれば、このためにファイル容量がどんどん増えていく可能性があります。(全体の23/24についてはある意味、無意味?な算式になるわけですね)
1Bookに何枚のシートがあるかで、算式の量も増えてしまいますね。

マニュアルで色を付けたシートを作成しテンプレートとして使用する方法と比較することも大事でしょう。

下は色を付けるマクロです。最初の5行(***の箇所)で動作を設定します。色を付けたいシートを出しておいて実行します。


ツール→マクロ→Visual Basic Editor で VBE画面に移り、標準モジュールを挿入し
標準モジュールに貼り付けます。

Sub Paint24()
  Const startRow = 2 '*** 行ステップをカウントする最初の行
  Const lastRow = 9000 '*** 最終行
  Const startPaintCol = "A" '*** 色を付ける最初の列名
  Const lastPaintCol = "K" '*** 色を付ける最後の列名
  Const myColorIndex = 35 '*** 色の指定 34、35などを試してみてください

  Const stepRow = 24 '行ステップ数

  Dim rw As Long '行カウンタ

  Application.ScreenUpdating = False
  For rw = startRow + stepRow - 1 To lastRow Step stepRow
    Range(startPaintCol & rw & ":" & lastPaintCol & rw).Interior.ColorIndex = myColorIndex
  Next
  Application.ScreenUpdating = True
End Sub
    • good
    • 0
この回答へのお礼

nishi6様へ

ご回答ありがとうございます。

私は、マクロの世界はまだ触れたことがありません。
見慣れない単語がたくさんありまして、頭がついて
いけるかな?と思えますが、時間を見つけて
必ず上記の方法で挑戦します。

お時間をとらせて、申し訳ありませんでした。

お礼日時:2002/04/07 14:49

条件付き書式が便利です。

マクロは頻繁に書く人は問題ないでしょうが
この為だけにマクロを書くと後から修正するとき苦労することになります。

但し、#1の方が書かれている2の式で上手くいきません。
正しくは、「=MOD(ROW(),24)=0」です。

問題は先頭の行にヘッダー(見出し)を付けるのが一般的ですから
ヘッダーの行数を調整する必要があります。一行の場合は
・=MOD(ROW()-1,24)=0
として下さい。

但し、列単位で選択で設定すると一行目も条件に一致してしまいます。
再度一行目を選択して条件を削除した上で、別の書式をしていするなど
して下さい。
    • good
    • 0
この回答へのお礼

HAL007様

ご連絡ありがとうございました。
#2の回答者様の方法で、目的が果たせました。

実は、表の頭に見出しがあり、その調整はHAL007様の
ご指示のように書き換えます。

お世話になりました。

お礼日時:2002/04/07 14:41

関数式による解答が既に出ていることもあり、


VBAであるのでお気に召さないかも知れませんが、良ければ下記でテスト済みです。
-----
i=1 to 100の100(=最下行数)、Cells(a,10)の10(最右列数),RGB()の()内(=色種)は適当に設定してください。0から255までの数で、3つの数をカンマで区切って入れてください。
Modele1に下記を打ち込み、メニューバーの実行をクリックすること。
Sub test01()
For i = 1 To 100
a = Worksheets("sheet1").Cells(i, 1).Row()
If a Mod 24 = 0 Then
' MsgBox a
Range(Cells(a, 1), Cells(a, 10)).Interior.Color = RGB(255, 255, 0)
End If
Next i
End Sub
    • good
    • 0
この回答へのお礼

imogasi様

私はエクセルも初心者であり、VBAを用いた方法があることを
教えていただきありがとうございます。

しかし、いまでもVBAが何であるかわかりませんが、
時間を見つけて、ご指示あったように、テストします。

お時間をとらせたことに感謝申しあげます。
ありがとうございました。

お礼日時:2002/04/07 14:36

「一回の設定」ということがどういうことなのかわかり


ませんが、マクロを使用しないのでしたら、条件付書式を
使用するほうがよいでしょう。
A1が1時間目とした場合――
1.A1に、[条件付書式]-[数式が] で
   =MOD(ROW(),24)=0
  と入力し、書式-パターンで好きな色を選択します。
  ※A4が1時間目でしたら、=MOD(ROW()-3,24)=0
2.これを必要な列範囲(B1:F1とします)に書式コピー
  します。
3.A:F1 を 表全体に書式コピーします。
    • good
    • 0
この回答へのお礼

misatoanna様

教えていただいたように、設定をしましたところ、
24行毎にカラーが出現しました。

今はもう分かりましたが、当初にエクセルシートの
カラー設定をしておかないと、設定前に作った数式を用いたデータや
数式などがすべて消えてしまい、はじめは驚きました。

でも、出来ることが分かりましたので、ひと安心です。
ありがとうございました。

お礼日時:2002/04/07 14:29

たとえば、A1をアクティブにして、


1.[書式]-[条件付き書式]をクリック
2.条件に「数式が」「=MOD(ROW(A1),24)=0」と入力
ROW関数はセルの行番号を見つける関数
MOD関数は余りを返す関数で、この場合24で割った余りが0の意
3.「書式ボタン」を押して、パターンタブを選び、好きな色を選択。
4.その後、オートフィルで一番下のセルまでドラッグ。左右どちらかのセルにデータが入っていれば、フィルハンドルでダブルクリックすれば、一瞬で終わります。
5.これで24行目ごとに色が付くと思います。
6.以上の作業を自動マクロに記録すれば、もっと楽できます。

ご参考になれば、幸いです。
    • good
    • 0
この回答へのお礼

motomiya様

早くご連絡いただきありがとうございます。
ご指示の方法でテストしましたが、うまくカラーが
表れませんでした。
でも、ROW関数、MOD関数の意味を教えていただき
少し、この関数にも愛着がでてきました。
ありがとうございました。

お礼日時:2002/04/07 14:20

このQ&Aに関連する人気のQ&A

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

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q動詞一覧・目的語一覧・補語一覧みたいな英語の詞・語ごとにずらーと並んだ

動詞一覧・目的語一覧・補語一覧みたいな英語の詞・語ごとにずらーと並んだサイトってないですか?

Aベストアンサー

動詞はともかく「目的語」とは「補語」というのは文における働きなので, そんな一覧を求めることがそもそも全く無意味.

QEXCEL2002で、OnTime メソッドを使い、15分毎にCalculateする方法を選択し、15分毎に,別のセルの値を+1ずつ増加させる方法

 EXCEL2002でセルの時刻(A1)が15分更新されるのに対応させて、他のセル(B1)の数値を+1ずつ増加させる方法を教えて下さい!
例として,
A1に9:00 というNOW関数で表示させた値が、9:15⇒9:30⇒9:45⇒10:00
と変化する度に、
B1の値を「1」を初期値として始まり、 1⇒2⇒3⇒4⇒5 と増加させる方法を教えて下さい!

 この際、
 OnTime メソッドを使って、15分ごとに
1.Calculateする
2.セルB1の値に1を加えるか、別途カウント用の変数に保持した値をセルB1に書き込む。(多分Microsoftの推奨は前者)
3.次回(15分後)のOnTime設定をする。
4.閉じるときはOnTime設定を解除する。

 以上の方法で、VBAを組み立てるには、どうしたら良いでしょうか?
 何度やっても失敗します。
たいへん、厚かましい質問で申し訳ありません。
 実行可能なプログラムの形で教えて頂けないでしょうか?
 以前の質問 QNo.2292225の関連質問です。御覧下さい!
 参考URL http://www.asahi-net.or.jp/~ZN3Y-NGI/YNxv214.html

 EXCEL2002でセルの時刻(A1)が15分更新されるのに対応させて、他のセル(B1)の数値を+1ずつ増加させる方法を教えて下さい!
例として,
A1に9:00 というNOW関数で表示させた値が、9:15⇒9:30⇒9:45⇒10:00
と変化する度に、
B1の値を「1」を初期値として始まり、 1⇒2⇒3⇒4⇒5 と増加させる方法を教えて下さい!

 この際、
 OnTime メソッドを使って、15分ごとに
1.Calculateする
2.セルB1の値に1を加えるか、別途カウント用の変数に保持した値をセルB1に書き込む。(多分Microsoftの推奨は前者)
3....続きを読む

Aベストアンサー

こんにちは。Wendy02です。

>メッセージウィンドウで、いつもやっている事と同じで、必ず『はい』を押して、終了させているのですが、どうしても、上記のような結果となってしまいます。

それでは、Module1 等をすべて削除した時点で、Ctrl + S で、保存してください。
何かの反応が出てくるはずです。

それから、もしも、それが、PERSONAL.XLS でしたら、今の時点では、そのPERSONAL.XLS を、

C:\Documents and Settings\[ユーザー名]\Application Data\Microsoft\Excel\XLSTART\

の場所から、一時退避したほうがよいかもしれません。

ただ、そういうことではない場合、
つまり、すべてが割り込みが働いている状態でしたら、私がいままで書いたことでは削除できません。
本来ですと、その製作者に問い合わせるのが筋なのですが、一応、その場合の処理の仕方は、

[スタート]-[すべてのプログラム]-[Ctrl キーを押しながら+Excelをクリック]

で、
[セーフモードで起動]

それから、それぞれのModule1 等の処理を、私がいままで書いたようにします。

こんにちは。Wendy02です。

>メッセージウィンドウで、いつもやっている事と同じで、必ず『はい』を押して、終了させているのですが、どうしても、上記のような結果となってしまいます。

それでは、Module1 等をすべて削除した時点で、Ctrl + S で、保存してください。
何かの反応が出てくるはずです。

それから、もしも、それが、PERSONAL.XLS でしたら、今の時点では、そのPERSONAL.XLS を、

C:\Documents and Settings\[ユーザー名]\Application Data\Microsoft\Excel\XLSTART\

の場所から、一...続きを読む

Q新着順や新着順一覧を英語で書くと??

英語で新着順ってなんて書きますか?
HPに写真を載せていて
写真を新着順一覧に表示するスペースの名前を英語にすると、なんて書けばいいんでしょうか?
新着順や新着順一覧…という感じでお願いします。

Aベストアンサー

Sort by Date (日付順)というリンクが多いですね。

順番の切り替えに latest to earliest (最新から最古へ) とその逆を書いてある場合や、上向き三角▲と下向き三角▼のボタンを使っているところもあります。

到着というのをわざわざ盛り込んでいるところは少ないですが、長くても良いならば、Sort by Date arrived か Sort by Arrival Date とも書けます。

今回に写真という語も入れようとすると、Photos sorted by date (latest to earliest) のようになって見た目は冗長になってしまいます。

QEXCEL 1日毎に自動で順番を変えたい

エクセル初心者です。
こんなの事できるんでしょうか?
例えばABCDとそれぞれセルの中縦に書き込み、一日毎に自動でその順番を入れ替えること。
一日目(1)A(2)B(3)C(4)D
二日目(1)B(2)C(3)D(4)A
三日目(1)C(2)D(3)A(4)B
四日目(1)D(2)A(3)B(4)C
…以降繰り返し。
もしも可能であればやり方を教えてください!
宜しくお願い致します!

Aベストアンサー

回答No2です。
ごめんなさい。先に示した式では一日ごとにその順番が変わりません。
B1セルに入力する式は次のようにしてください。

=CHOOSE(MOD(ROW(A1)+TODAY()+COLUMN(A1)-2,4)+1,"A","B","C","D")

QWindows7でプログラム一覧が英語表示される

Windows7でプログラム一覧が英語表示される

Windows7 Professionalを使っています。
最近気がついたのですが
普通ならプログラム一覧で
「アクセサリ」と表示されるはずの部分が
英語で「Accessories」と表示されるようになっていました。
メニュー自体もすべて英語で
たとえば「電卓」なら「Calculator」といった具合です。

ちなみに「ゲーム」は「Games」
「既定のプログラム」は「Default Programs」となっていますが
「スタートアップ」はそのままです。

ソフト自体に不具合はないのですが
何となく気になります。
かといって
名前を一つ一つ変更するのも面倒です。
簡単に元へ戻す方法がお分かりでしたら
よろしくお願いいたします。

Aベストアンサー

詳しくは分かりませんが、C:\Users\○○\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\AccessoriesにあるはずのDesktop.iniをうまく設定すればよいと思います。ちなみに○○はユーザー名です。

Qエクセルで365×24の表を8760×1に並び替えたいです

 エクセルで、下のような365×24の表で
   A  B  C  ・・X
1  ● ● ●   ●          
2  ● ● ●   ●
3  ● ● ●   ●       
・               
365  ● ● ●   ●           

で、これを8,760×1の表に簡単に変換したいのですがやり方がわかりません。少なかったらコピーして行と列を入れ替えるで、やってもいいのですが今回はこれが、かなりの量があり手作業だと時間がかかりすぎ、実用的ではありません。ですので、この作業を簡単に出来る方法を探しております。どうぞ宜しくお願いします。
 なお、こちらはオフィス2000、2002を使用しております。

Aベストアンサー

 まずCSVファイルに書き出します。すると次のようになっているでしょう。

●,●,●,●,●
●,●,●,●,●
●,●,●,●,●

 それで、縦一列ですので、「カンマ」をすべて「改行」に置換します。ワープロソフト、またはテキストエディタを使います。
 すると、次のようになります。
 これを再度、Excelで読み込みます。以上です。















Qヘンな日本語英語の一覧があるサイト

ヘンな日本語英語の一覧があるサイトなんてご存知ありませんか?
ピアース、ピーマン、ビデオデッキ、シャーペンなど、実際には使われない英語がたくさん日本で使われていたりしますが、こういうリストが載っているサイトを探しています。

ご存知の方いらっしゃいましたら教えて下さいっ!
よろしくお願いしまっす!

Aベストアンサー

洋サイトですが

参考URL:http://www.engrish.com/

Qエクセル 表の1行おきに色づけをして見やすくしたい

1行おきに、色をつけて見やすくしたいんですが、行をCtrlキーで、選択して、色づけする以外に、簡単一発のやり方があれば教えてください。

Aベストアンサー

「一行おきに色 エクセル」で検索

http://www.google.co.jp/hws/search?hl=ja&q=%E4%B8%80%E8%A1%8C%E3%81%8A%E3%81%8D%E3%81%AB%E8%89%B2+%E3%82%A8%E3%82%AF%E3%82%BB%E3%83%AB&client=fenrir&adsafe=off&safe=off&lr=lang_ja

1番目:条件付き書式を使う方法

2番目:冒頭の2行だけ色分けをしておき、あとは右ボタンでドラグ操作し、表示されたメニューから「書式のコピー」を選ぶ方法

Q色の名前は、日本語と英語のどちらを多く使う?・・・例えば「緑」と「グリーン」

「緑」と「グリーン」、「灰色」と「グレー」・・・

色の名前を言う時、日本語と英語のどちらを多く使いますか?

例えば、
・服の色は?
・車の色は?
・携帯機器(電話・プレイヤーなど)の色は?
どちらの表現を多く使いますか?

又、その他
「このもの(種類)は、日本語(英語)で言う」
「この色は、日本語(英語)で言う」
「殆ど、日本語(英語)で言う」
といったご回答も、歓迎します!

Aベストアンサー

じゃあいきましょか。英語です。私ら。

ピンク、ローズピンク、チェリーレッド、マローピンク、チリアンパープル、コスモス、チェリーピンク、ベビーピンク、ラムプラーローズ、ラズベリー、ローズマダー、カーマイン、パーシアンローズ、プラム、ガーネット、ピアニーレッド、プリムラ、コーラル、サルビア、マゼンダ、バーミリオン、シグナルレッド、ホビーレッド、ロブスター、ケチャップ、ファイヤー、スカーレット、バーミリオンレッド、ルビー、オペラ、ブリック。ベルベット。
以上赤系統。
日本にも古来のゆかしき呼び方はありますが、この点に関しましては英語に軍配をあげます。

グレーといいましても、シルバーホワイトグレー、パールグレー、オレンジグレー、イエローグレー、ブルーグレー、ピンクグレー、フレンチグレー、ミディアムグレー、グレー、ダークグレー、カーボングレー、チャーコールグレー、…あぁしんど。
私は日本男児ですが色名は英語です。

Q1秒毎にセルの値を1ずつ増やしたいのですが

いつも難しいマクロでgooの皆さんには大変お世話になっています。
よろしくお願いします。
エクセルで、シート上でクリックを一回したらセルの値が1秒ごとに1ずつ増えるようにしたいのです。再度クリックしたらカウントを中断して0に戻りまた1秒ごとに1ずつセルの値を増やしたいです。数値の最高値は別のセルに書いてある数値です。
ちょっと難問ですがどうかよろしくお願いします。

Aベストアンサー

要件に一番近そうなマクロを作ってみました。ただし数点制約があります。
・ExcelVBAではマルチスレッドが実現できないので1セル毎でしかカウントできません。
・クリックイベントは無いので、ボタン(CommandButton1)のクリックイベントで
 カウントのON/OFFを行っています。

Option Explicit
Private Declare Function GetTickCount Lib "kernel32" () As Long
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

Public blCountFlg As Boolean

Private Sub CommandButton1_Click()
blCountFlg = Not blCountFlg
Call prc_Count(ActiveCell, Cells(1, 1))
End Sub

Private Sub prc_Count(ByVal Target As Range, MaxCount As Long)
Dim lnStart As Long
Dim lnCount As Long
lnStart = GetTickCount

Do While (blCountFlg And lnCount < MaxCount)
Sleep (100)
lnCount = (GetTickCount - lnStart) / 1000
Target.Value = lnCount
DoEvents
Loop
End Sub

要件に一番近そうなマクロを作ってみました。ただし数点制約があります。
・ExcelVBAではマルチスレッドが実現できないので1セル毎でしかカウントできません。
・クリックイベントは無いので、ボタン(CommandButton1)のクリックイベントで
 カウントのON/OFFを行っています。

Option Explicit
Private Declare Function GetTickCount Lib "kernel32" () As Long
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

Public blCountFlg As Boolean

Private Sub CommandButt...続きを読む


人気Q&Aランキング