痔になりやすい生活習慣とは?

EXCELでのセルの書式設定について、ご教授ください。

自分の職場で使用している、EXCEL2003で作成された自主警備点検表を、EXCEL2003のシートに移植しました。

元データは順ごとに1枚のシートで、1ヶ月分作成するには、日にちのところを全て書き換えなければならない、アナログ式のシートです。

月末はいろいろな表を作成するため、各表ともシンプルかつ簡単に作成できないかと思い、簡単な設定表で年と月、最初の日の曜日を指定すれば、各旬のシートが作成され、後は印刷するだけ、と言うようにしました。

改造したファイルは、旬ごと(10日毎)がA3サイズの用紙1枚で、1か月分が3枚のシートで印刷されます。

月はタイトルとして。「平成21年4月 上 旬分」というように表示され、日にちについては各シートとも「1の日(月)」といった書き方になっており、曜日だけ変更しなければなりません。これまではそのままセルに打ち込んでましたので、曜日は土曜日は曜日の文字の文字色を青に、日曜日と休日は曜日の文字の文字色を赤に変更し、他の曜日は黒文字にしていました。

年、月などは、専用の「設定」シートを作成し、ここで、年と月はリスト入力します。その月の初日である1日の曜日は、1を月曜日とし、数字でリスト入力します。

各日の曜日はこの設定シート内に旬ごとの1ヶ月のカレンダーを作り、ここに自動で日の対応する曜日が自動表示されるように設定し、自主点検表の日のところに、例えば

=“1の日 ( ”&設定!B41$“ )”

という式で取り込んでいます。

問題はこの自動表示にしたことで、曜日の「土」を青色印字にしたり、日曜日の「日」や祭日の曜日の文字を赤色印字にしたりできなくなったことです(これまでは、手作業で文字の一部を色指定していました)。

セルの書式設定で設定できないかと調べましたが、できそうにありません。

何か設定をする方法をご存知の方が居られましたら、ご教授ください。

現実にこのファイルを使用して印刷するのは、今月の月末になります。それまでに完全な物を作成し、できれば本格使用可能にしたいと思っています。

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

A 回答 (5件)

No.3です、失礼しました、多分数式(関数)のみで、


文字列の中の一部の文字色を変更するのは、無理ではないかと?

別の列(補助列に)日付を入力(関数による表示)をしておけば、
条件付書式の設定で、対照のセル全てのフォント色を変更できますが?
(条件付書式の設定 No.2さんの参照URLの下の方)
例えば (*) を別の列へ表示させ、そのセルには日付を入力、
書式の設定で、(*) と表示させ、さらに条件付書式で、フォント色を変更等

マクロなら希望の表示に変更できるので、マクロをお勧めしました。
マクロを使用したことがあるのなら、下記も参考になると思われます、
お時間のある時に、御覧になってみては?
すぐに役立つエクセルVBAマクロ集 - Excel VBA Macro Collection http://www.asahi-net.or.jp/~zn3y-ngi/ の
セル制御 http://www.asahi-net.or.jp/~zn3y-ngi/YNxv20005.h … 等
    • good
    • 0
この回答へのお礼

有り難うございます。

やはりマクロでなければ出来ませんか。

私は20年以上前、まだソフトがMS-DOS(Windowsの前身)で操作していた頃、NEC製のN88 Disk-BASICを使っていたことがありました。

その後Visual BASICを経てWindowsで動くBASICも多少やりました。

Visual Basic For Windowsをかじった頃、自分で作っても効率が悪いだけであったことも有り、プログラミングをやめてしまいました。それから約10年。

もう覚えていません。ExcelのマクロがVisual Basic For Windowsから派生したVBAであることは知っていますが、さすがにもう私の知識が錆びていて、使えない状態です。

今はキー操作を覚えさせるキーボードマクロまでしかできません。

残念ですが、諦めるしか、なさそうですね。

ありがとうございました。

お礼日時:2009/04/04 19:45

関数では無理


マクロでよければ
詳細が掴めないので、取り敢えずサンプル

Sub test()
ActiveCell = "1の日 ( " & [設定!B41] & " )"
If InStr(ActiveCell, "(日)") > 0 Then
ActiveCell.Characters(Start:=InStr(ActiveCell, "(日)") + 1, Length:=1).Font.ColorIndex = 3
ElseIf InStr(ActiveCell, "(土)") > 0 Then
ActiveCell.Characters(Start:=InStr(ActiveCell, "(土)") + 1, Length:=1).Font.ColorIndex = 5
End If
End Sub

参考まで
    • good
    • 0
この回答へのお礼

やはり関数では無理ですか。

マクロは、No.4さんのお礼に書いたとおり、錆びてしまったVBの知識ではどうにもなりません。当時諦めたので、VBA血押しての拡張部分は覚えませんでしたので。

キーボードマクロではどうにもなりませんし。

書き込んで戴いたマクロは参考にさせて戴きます。

ありがとうございました。

お礼日時:2009/04/04 19:48

回答ではありませんが


雛形はこんな感じにしてみては?

>月はタイトルとして。「平成21年4月 上 旬分」というように表示
上記セル(例えばA1)へ 2009/4/1 と入力
セルの書式設定のユーザー定義で ggge"年"m"月 上 旬分" として

>「1の日(月)」といった書き方
上記セル(例えばB3)へ =DAY($A$1)&"の日 "&TEXT($A$1,"(aaa)")
(2の日(*)は =DAY($A$1)+1&"の日 "&TEXT($A$1+1,"(aaa)") とか?)
(2の日(*)は =DAY($A$1)+Row(A1)&"の日 "&TEXT($A$1+Row(A1),"(aaa)") を、オートフィルで下へとか?)

等として、Sheetをコピー→Sheet名の変更→
「コピー→値の貼り付けで数式を消す→文字の色を変更」を手作業で
「」の中は(手作業全て)マクロにしてしまうとか?

手作業を分割してマクロの記録で記録し、記録したマクロを新たな質問に貼り付け、うまく動作しない内容を書き添えて質問すれば、マクロに詳しい方々から回答して頂けると思います。

この回答への補足

ご教授内容は、参考にさせて戴きます。

私の職場は私以外はPCは何とか動かせるだけと言う人2名でこのシートを使います。1名は過去所長クラスを経験した方ですが、既に定年退職、現在は再雇用制度で現職場にいます。

意図としては、今一人は現職ですが、あと半年で定年になります。二人とも、PC操作は超初心者です。

設定シートで年度、月、スタートの曜日を入力すると、既に作成され、式で日などを取り込むように作った上旬、中旬、下旬のシートに反映され、その後、設定以外のシートを印刷すればよい、と言う作りにしたいのです。

> Sheetをコピー→Sheet名の変更→
「コピー→値の貼り付けで数式を消す→文字の色を変更」を手作業で
「」の中は(手作業全て)マクロにしてしまう

と言った作業を、その人たちがするのはほとんど不可能です。

私自身も、ある程度は式を扱いますが、マクロはキーボードマクロがせいぜいで、属性をいじるなどまるで出来ません。

シートのコピー、表示データの値化、その一部の文字の属性変更を手で行なわず、簡単の式の設定、セルの書式設定で、全て自動で出来ないか、と言うのが今回の改造を始めた意図でした。

補足日時:2009/04/03 05:44
    • good
    • 0

直接の回答ではありませんが



次のサイトを参考にしてください。

月間予定表の作成例
http://www.eurus.dti.ne.jp/~yoneyama/Excel/jituy …
    • good
    • 0

カレンダー一例です。


エクセルの日付機能(1900/1/1からのシリアル値で管理)を利用すると曜日、土日及び大小月が日付関数を利用すれば設定できますが如何でしょうか。
以下のURLを参考にして下さい。

参考URL:http://www.eurus.dti.ne.jp/~yoneyama/Excel/ex-q- …

この回答への補足

お教え戴いたHPは、偶然にもNo.2さんと同じ物のようです(指定場所は異なるようですが)。

ただ、大変参考になるので、ブックマークに登録させて戴きました。

大小の月は、mod関数で4、100、400で割ったときの剰余を算出し、法則をIF文で作ってやれば、覚えにくい関数を使わないでも出ますので、私は大概この方式を使っています。

少し書き方が判りにくかったですね。

シリアル値を使えば、曜日がでるのも判るのですが、私は表示(印刷)時に一つのセル内に

「1の日 (土)」

と表示した時は、「土」という文字のみが青表示、

「2の日 (日)」 5月3日なら「3の日 (火)」

と表示して、「日」「火」と言う文字のみ赤表示、平日は全ての文字が黒表示、土休日も曜日を表わす文字のみ指定色(土曜日が青、休日が赤)で表示したいのです。

複数のセルを使って曜日の文字のところのみ、土休日などでセルの属性を変化させると言うことも考えましたが、出来ている(会社が配布した)ファイルを大きく改造するのも難しいこと、セルを分けても、表示内容によって自動的に属性を変化させるすべが判らないこと、私自身が関数やマクロに疎いこともあって、上手く表示を変化させられなくて困っています。

何か方法をご存じの方が居られたら、よろしくお願いします。

補足日時:2009/04/02 14:32
    • good
    • 0

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

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

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

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

QExcelで数式内の文字色を一部だけ変更したい

数式内の文字列の色を一部だけ変更したいのですが、どなたかご存知の方ご教授ください。

セルごと文字色を変更することは可能なのですが一部だけの変更ができません。

下記、例をあげます。
数式:="No"&A10&"を参照"
表示:No10を参照

上記のNo10の文字色を赤等に変更するにはどうしたらよろしいでしょうか。

Aベストアンサー

数式:="No"&A10&"を参照"
は一種の文字を結合する関数です。
私はいつも言っているのだが、関数(数式)は「値」だけを計算や加工したりするものです。元のセルの書式属性は引き継げません。
したがって「No}をセルに入れて、「赤色」に設定しても、あるセルの「10」の文字を赤くして、参照しても、文字の赤色属性は移りません。
ただあるセルの文字列の一部をの色を変えるのは、VBAで簡単にできます。
Sub test01()
For i = 1 To 5
s = 1
e = 2 + Len(Cells(i, "D"))
Cells(i, "G").Characters(s, e).Font.ColorIndex = 3
Next i
End Sub
D列にNoの数があるものとします。
G列に関数を入れているとします。
うまくいかなければ、G列をコピーし、値貼り付けして実行してみてください。

Qセルの書式設定で一部のフォントサイズを変更したい

Excel 2010を使用しているのですが、「セルの書式設定」についてわからないことがあります。

「セルの書式設定」→「ユーザー定義」で「hh:mm "PDT"」という書式を作成したところ、「10:00 PDT」と表示されました。この「PDT」という文字の部分だけフォントを小さくしたいのですが、こういった設定は可能なのでしょうか?

なにか良いアイデアがありましたらご教授願います。

Aベストアンサー

こんにちは!
セルの表示形式の操作だけでは無理だと思います。

いくらセルの表示形式で「PDT」を表示させたとしても、実データは入力した時刻(時間)のシリアル値になりますので
一旦文字列にして「PDT」という文字を付け加えてやる必要があります。
ただ、セル内の文字全部のフォント変更であれば簡単ですが、部分的に変更となると
手作業で行うにしてもかなり手間がかかってしまいますね!

ただ、これでは何もお役に立てないのでVBAになってしまいますが、一例です。

A列に時刻(時間)を入力するとします。

画面左下の操作したいSheet見出し上で右クリック → コードの表示 → VBE画面に
↓のコードをコピー&ペーストしてA列に入力してみてください。

Private Sub Worksheet_Change(ByVal Target As Range) 'この行から
Dim tmp
If Application.Intersect(Target, Range("A:A")) Is Nothing Or Target.Count <> 1 Then Exit Sub
'↑ A:Aの部分は実際の表示したい列に!
Application.EnableEvents = False
With Target
If IsNumeric(.Value) Then
tmp = WorksheetFunction.Text(WorksheetFunction.Round(.Value, 5), "hh:mm")
.Value = tmp & "PDT"
.Characters(Start:=Len(tmp) + 1, Length:=3).Font.Size = 8 '←フォントサイズは「8」
End If
End With
Application.EnableEvents = True
End Sub 'この行まで

※ フォントサイズは「8」ポイントとしています。

※ 質問にあるように表示形式だけ変更するのであればA列に表示されているデータは数値ですので
計算に使用できますが、上記方法で表示されているデータは文字列になります。
すなわち計算できるデータではありませんので、
もし計算する必要がある場合は、「PDT」を隣のセル表示させたりする工夫が必要になると思います。m(_ _)m

こんにちは!
セルの表示形式の操作だけでは無理だと思います。

いくらセルの表示形式で「PDT」を表示させたとしても、実データは入力した時刻(時間)のシリアル値になりますので
一旦文字列にして「PDT」という文字を付け加えてやる必要があります。
ただ、セル内の文字全部のフォント変更であれば簡単ですが、部分的に変更となると
手作業で行うにしてもかなり手間がかかってしまいますね!

ただ、これでは何もお役に立てないのでVBAになってしまいますが、一例です。

A列に時刻(時間)を入力するとします...続きを読む

QEXCEL VBA で特定の文字に色をつけるマクロを書きたいのですが

コードはどのように書けばよいのでしょうか?

(1)そのようなコードを持っていらっしゃったらいただけないでしょうか?

(2)または、参考になるページがありましたら教えていただけないでしょうか?

現在勉強を始めたところですが、よろしくお願いいたします。

Aベストアンサー

セルの文字列の中に,
たとえば
aaaeeessseee
ssddd
dfg
weeeff
のセルの中の
eeeに赤色文字にする。
セル範囲Range("A1:C6")を対象にしてます。
ーーーー
Sub test01()
Dim cl As Range
For Each cl In Range("a1:c6")
r = InStr(cl, "eee")
If r <> 0 Then
cl.Characters(r, 3).Font.Color = vbRed
End If
Next
End Sub

Qエクセルで条件により文字色を変える関数教えて下さい

エクセル2003を使っています。
セルa1に下限値,a2に上限値を入力、c3にデータを入力します。
入力したデータがa1下限値,a2上限値の範囲内であればデータの文字色はそのままで、その範囲を超えるとデータの文字色が「赤」に変わる数式を教えて下さい。よろしくお願いします。

Aベストアンサー

C1セルを選択し、次の方法で如何でしょうか。
(1)書式→条件付き書式
(2)条件を「セルの値が」、「次の値の間以外」、「=A1」、「=B1」で設定
(3)書式→フォントタブの色リストで赤を選択→OK
(参考)下行も同様にしたい場合、C1セル下方向にコピーして下さい。

Qセル結合させてるときの 条件付き書式での色づけ方法

いつも、お世話になっております。
先ほど、土日祝の色づけ方法をわかりやすく、教えていただきましたが、もし、下記のようなセル結合されてるときはどうすればいいのかわからないので、ぜひよろしくお願いします。

【A1】に年月 
【A2-Z2】に日付←A2とB2はセル結合(Zまで2つづつセル結合)
【A3-Z3】に曜日←上記と同じくセル結合
【A4-Z4】に掲載欄に数字が入ります。←セル結合なし
【AP1-AP5】に仮に休日表を作ったとします。


【A1】に【=A1】と入力
【C2-Z2】に【=A2+1】
【A3-Z3】に【=A2】
【AP1-AP5】に“1/1” のように休日を入力

2行目に書式→セル→表示形式の分類に日付
3行目に書式→セル→表示形式の分類でユーザー定義→種類に(AAA)

で、色づけは2~4行目まで条件書式にしてますが、下記の方法だと4行目のB4・D4・F4・・・・(ひとつ飛ばしでZ4まで)が色がつかないのです。どうしたら4行目すべてに色がつくでしょうか・・・????

【形式が】【=(WEEKDAY(A$2)=1)+(COUNTIF($AP$1:$AP$5,A$2)>0)】赤

いつも、お世話になっております。
先ほど、土日祝の色づけ方法をわかりやすく、教えていただきましたが、もし、下記のようなセル結合されてるときはどうすればいいのかわからないので、ぜひよろしくお願いします。

【A1】に年月 
【A2-Z2】に日付←A2とB2はセル結合(Zまで2つづつセル結合)
【A3-Z3】に曜日←上記と同じくセル結合
【A4-Z4】に掲載欄に数字が入ります。←セル結合なし
【AP1-AP5】に仮に休日表を作ったとします。


【A1】に【=A1】と入力
【C2-Z2】に【=A2+1】
【A3-Z3】に【=A2】
...続きを読む

Aベストアンサー

結合されているセルの場合、実際にデータが入力されているセルがその結合されたセル番地になります。

  A  B
1_あ  
2___い
と入力されてセルを結合した場合
  A  B
1__あ  
2__い

結合されたセルを選択すると”あ”はA1セル”い”はB2セルと名前BOXに表示されます。
=A1とした場合は”あ”が表示されますが=B2とした場合は””(データなし)の状態になります。
4行目の書式設定はB4・D4・F4はそれぞれ結合されたセルのデーターの入力されていないセル(A2・D2・F2)を参照してますので、書式設定を行っても色は付きません。
解消するにはB4・D4・F4にそれぞれ
【=(WEEKDAY(A$2)=1)+(COUNTIF($AP$1:$AP$5,A$2)>0)】
______^^_____________^^
の条件書式を設定(A$2を必ず設定)
A4:F4を選択した状態で右方向にドラッグして【書式のみコピー】を行えばご希望の状態になるはずです。

QExcel セル内の特定の文字だけ自動で色を変えたい

3月13日(土)

と一つのセルにと入れた場合、土曜のときは「土」だけ青、日曜のときは「日」だけ赤というような設定はできますか?
条件書式だとセル内のすべての文字の色が変わってしまいますよね。
VBAを使わず、条件書式のような設定だけで行う方法はないでしょうか?

Excelのバージョンは2003と2007で考えています。

Aベストアンサー

残念ながら、セルに入力した一部のフォント色を自動的に変更するようなことはできません。

Qエクセルで条件に一致したセルの隣のセルを取得したい

下のような「得点」という名前のシートがあります。
(「田中」のセルがA1です。)

 [ 田中 ][ 10 ][ 200 ]
 [ 山田 ][ 21 ][ 150 ]
 [ 佐藤 ][ 76 ][ 250 ]
 [ 鈴木 ][ 53 ][ 350 ]

別のシートのA1セルに、「佐藤」と入力すると、

 [ 佐藤 ]

「得点」シートから「佐藤」の列を見つけて、B1、C1に

 [ 佐藤 ][ 76 ][ 250 ]

のように表示させたいのですが、B1、C1にはどのような式を書けば良いのでしょうか。
「得点」シートでは氏名が重複する事はありません。
IF文を使うと思うのですが、いまいち良く分かりませんでした。

よろしくおねがい致します。

Aベストアンサー

こんにちは!
VLOOKUP関数で対応できます。
IF関数と併用すればエラー処理が可能です。

Excel2007以降のバージョンであれば
B1セルに
=IFERROR(VLOOKUP($A1,得点!$A:$C,COLUMN(B1),0),"")
としてC1セルまでオートフィルでコピー!
そのまま下へコピーすると行が2行目以降でも対応できます。

Excel2003までの場合は
=IF($A1="","",VLOOKUP($A1,得点!$A:$C,COLUMN(B1),0))

としてみてください、m(_ _)m


人気Q&Aランキング