Quantcast
Channel: 円周率近似値の日に生まれて理系じゃないわけないだろ! - knifeのblog
Viewing all articles
Browse latest Browse all 5376

カレンダーを作ろう -その2-

$
0
0

その1では、とりあえず形にしましたが、もう少し実用に耐えうるように変更して行きたいと思います。

前回は、モノクロ印刷して、実物のカレンダーとしての実用出来るようなところまでは作りました。

今回は、Excelのファイルとしても、印刷しても、実用に耐えうるようなところまで掘り下げます。

目指すは、



こんな感じです。



Excelはxlsやxlsxといった拡張子のファイルとして管理されています。

まずは、その1で作ったものをファイル保存しましょう。

ファイル名はカレンダーとでもしておきましょうか。


ファイルは、Sheet1、Sheet2、Sheet3、…、といったタブで区切られていることがわかると思います。


では、シートごとに別の月のカレンダーが表示されるようにしてみましょう。


まず、シート名には/(スラッシュ)など使えない文字があります。

シート名に2014/1とかは使えないんですね。

Sheet1を2014-1に変更します。

変更の仕方は、Sheet1を右クリックして、名前の変更です。


シート名が変更されましたので、そのシート名から年月を求める式をD2セルに設定します。

D2セルを、
=DATEVALUE(RIGHT(CELL("filename",D2),LEN(CELL("filename",D2))-FIND("]",CELL("filename",D2))))
にします。

一応複雑なので解説しておくと、

CELL()関数は、セルのいろいろな情報を取得する関数で、第1引数の"filename"は、第2引数のセルを含むファイルのフルパスを返します。

フルパスとは、
ディレクトリ\[ファイル名.拡張子]シート名
という形で返してくるので、FIND()関数で"]"が何文字目なのかを調べて、それより右にあたるところをRIGHT()関数で抜き出したものがシート名になり、それをDATEVALUE()関数でシリアル値に変換しているということになります。

というわけで、CELL()関数のfilenameを利用するためには、ファイル保存しておく必要があるということです。


これで、シート名を
2014年1月
2014-1
Jan-2014
といった書式にしても認識してくれることでしょう。

2014-1シート名を右クリックして、移動またはコピーを選択。
コピーを作成するのチェックを入れ、OK。

シートがコピーされましたが、いろいろなところが#になってしまいましたね。
シート名を正しい月日の書式にしてみてください。

これで、シートのバックアップも出来るということです。


さて、カレンダーに先月や翌月も小さく表示させたいですね。

前回までの講座では、セルが隣り合っていたので、オートフィルなど簡単に行えました。

今回は、列や行を挿入していきます。

説明していませんでしたが、列は縦方向、行は横方向です。

覚え方は、漢字をよく見てください。列は縦に2本、行は横に2本、続けて書きますね。


では、操作がし易いように、今まで広げたセルの列や幅を小さくしましょう。

Aセルをクリックして、Shiftを押しながら、→を押して、Iセルまでを選択します。

A列からI列までが選択されました。

まず、フォントサイズを10くらいにしてしまいましょう。

AとBの間の|をマウスでずらして、幅を50ピクセルくらいにしましょう。

A列からI列が同じ列幅になりました。


続いて、行の高さを変更します。

1セルをクリックして、Shiftを押しながら、↓を押して、9セルまでを選択します。

1行から9行までが選択されました。

1と2の間の-をマウスでずらして、高さを25ピクセルくらいにしましょう。

1行から9行が同じ高さになりました。


では、列を挿入して行きます。

各日にちを3列ずつにしたいので、2列ずつ挿入しましょう。

B列のどこかのセルを選択した状態で、

Altを押しなら、Iを押し、続けてCを押すと、列が挿入されます。

もう一度同じ操作をします。

これで、月曜日と火曜日の間に2列挿入されましたね。

同様の操作で、それぞれの曜日の間に2列挿入しましょう。


続いて、行を挿入して行きます。

2行のどこかのセルを選択した状態で、

Altを押しながら、Iを押し、続けてRを押すと、行が挿入されます。

同様の操作を繰り返し、曜日の行が8行目になるまで繰り返します。

8行目のどこかのセルを選択した状態で、行を挿入します。

曜日の行が9行目になりました。

これで、データの位置関係は出来上がりました。



それでは、セルを結合して行きましょう。

I1セルを選択し、カーソルキーを使って、M6セルまで選択します。

I1からM6まで選択されました。

セルを結合して中央揃えをします。

結合をすると、左上のセルが表示されるのですが、J1セル以外が空白であったために、J1セルの情報がI1セルに移動しました。

同様の操作で、I7からM7、曜日のセルを3セルずつに結合しましょう。


結合作業で、基準のセルはI7セルになりましたので、注意して下さいね。


では、左上の先月のカレンダーを作りましょう。

A1セルからG1セルまでを選択して結合します。

A2セルからG7セルまでを選択し、ホーム→書式→セルの書式設定→表示形式→ユーザー定義で、種類をdとする。

A1セルに、
=DATE(YEAR(I7),MONTH(I7)-1,1)
を入れます。

A2セルに、
=A1-MOD(WEEKDAY(A1)+3,7)-3

B2セルに、
=A2+1
を入れ、G2までオートフィルし、G7までオートフィルする。

A3セルに、
=G2+1
を入れ、A7までオートフィルします。

A2セルからA7セルまでを選択して、フォントの色を赤にする。
G2セルからG7セルまでを選択して、フォントの色を青にする。
B2セルからF2セルまでを選択して、フォントの色を黒にする。

左上の先月のカレンダーの格好がつきましたね。

翌月のカレンダーは、これをコピーしましょう。

A1セルからG7セルまでを選択し、Ctrlを押しながら、Cを押す。

これで、コピーされましたので、

O1セルを選択して、Ctrlを押しながら、Vを押す。

これで、ペーストされました。

O1セルに、
=DATE(YEAR(I7),MONTH(I7)+1,1)
を入れます。

これで、正しく表示されていると思います。


あとは、フォントサイズを調整したり、セルのサイズを調整したり、いろいろやってみてください。


次回は、条件付き書式を使って、カスタマイズしていきたいと思います。

では、よりよりエクセルライフを…



Viewing all articles
Browse latest Browse all 5376

Trending Articles