重要なお知らせ

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

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

ご覧いただきありがとうございます。
 Excelについての質問です。
今回、初めてMicrosoft offce Excel2007を使用しようとしているのですが、
どうしても分からないので知恵をお貸しください。

今回、カレンダー(?)を作ろうと思っているのですが、特殊なのを作ろうかと思っています。
まず左縦に年月日の『月』、上の横に『曜日』、それでその重なった所に日付が入るように
したいのですが、方法が分かりません。
方法を教えて下さい!お願いします。

A 回答 (7件)

>初めてMicrosoft offce Excel2007を使用しようとしているのですが


このコーナーの質問も始めてかな。
エクセルの質問をするときは
エクセルには(ブック)シート、列行を表すセル番地というものがあります。そしてそのセルの値を問題にするのです。
ぜひ簡単な、模擬実例を質問に書いて、その上で必要な説明をしてください。
変わったカレンダーであればあるほど、具体的に書いてもらわないと判りにくい。
関数・VBA・操作などで作り上げますが、関数は詳しいのかな。
>左縦に
例えばA列に、とすべき
>年月日の『月』、

A2 1
A3 2
A4 3
・・・
と書くこと。
>上の横に
たとえば第1行に 曜日、とかくこと
ーーーー AーB-CーD・・  
(第1行)月ー火ー水ー木ー金ー土ー日ー月ー4-7回の繰り返し?
などと説明すること。
===
この関数問題は過去に、近い多数の問題をやってないと、相当関数では難しいと思う。初心者の問題ではない。
結果
月一日の曜日日月火水木金土日月
13123456
26123
37123
431234567
5512345
61123456789
731234567
以下の月略
ーー

B2セルに =WEEKDAY(DATE(2008,A2,1))
下方向に12月行まで式を複写
ーー
C2に=IF(COLUMN()-2>=$B2,COLUMN()-$B2-1,"")
と入れて横方向に式を複写。
第42列程度まで複写必要(質問者が考えて)
2月以後も同じくC列の式を横方向に複写。
B列は式を複雑化させないために設けた。非表示にするとか。
===
難題点
そして月末日で日にち表示止めないといけない。
それで列数Column()-2が月末日数を越えたら空白を入れる。この式は上記の式を修正してIF関数を加える
=IF(AND(COLUMN()-2>=$B2,COLUMN()-$B2-2<DAY(DATE(2008,$A2+1,1)-1)),COLUMN()-$B2-1,"")
左の方一部
2728293031
242526272829
23242526272829
27282930
25262728293031
2930
2728293031
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
お礼が遅れて申し訳ございません。

お陰様でカレンダーが完成しました!
これからExcelの事について勉強していきます!
役に立つ回答、ありがとうございました!

お礼日時:2008/04/27 11:48

要するによくある月曜~日曜の一週間が一行になるカレンダーが折


り返さずにずっと伸びていくだけなので、そんなに特殊でもないで
すね。mike_gさんのレイアウトをお借りしましょう。

まずB2。私はここを
=IF(WEEKDAY(DATE($A$1,A$2,1),2)=B$1,1,"")
とします。実はB1:H1の曜日のセルには1~7の数値を入力して、書式
設定で月とか日と表示するように細工してます。これは条件書式を
使わないための工夫です。
次にC2。ここは
=IF(ISNUMBER(B2),B2+1,IF(WEEKDAY(DATE($A$1,$A2,1),2)=C$1,1,""))
という感じで処理します。左隣がもう数値になってれば、余計な判
断はしないわけです。H2までドラッグします。これで第一週目は完
了です。I2:AC2の第二週~第四週は左隣に+1するだけでオッケー。

第五週から第六週の火曜までは月末の判断が必要です。AD2は、
=IF(AC2="","",IF(MONTH(DATE($A$1,$A2,AC2+1))=$A2,AC2+1,""))
としました。昨日の翌日がまだ今月なら~という判断に、そもそも
昨日がもうすでにアレなら余計なことは考えないってのが追加され
た形です。第六週の火曜までドラッグします。

条件書式を使わないので他のソフトへペーストしても大丈夫です。
この作り方に祝日の処理を追加したものを昔ココログに書いたんだ
けど、自分のところを紹介すると怒られるので…
    • good
    • 0

   A   B  C  D  E  F  G  H  I  … AE AF AG AH AI AJ AK


1  2008年 月 火 水 木 金 土 日 月 … 火 水 木 金 土 日 月
2   1月    1  2  3  4  5  6  7 … 29 30 31
3   2月          1  2  3  4 … 26 27 28 29
4   3月            1  2  3 … 25 26 27 28 29 30 31
5   4月    1  2  3  4  5  6  7 … 29 30
6   5月        1  2  3  4  5 … 27 28 29 30 31
7   6月              1  2 … 24 25 26 27 28 29 30
8   7月    1  2  3  4  5  6  7 … 29 30 31
9   8月          1  2  3  4 … 26 27 28 29 30 31
10   9月  1  2  3  4  5  6  7  8 … 30
11  10月      1  2  3  4  5  6 … 28 29 30 31
12  11月            1  2  3 … 25 26 27 28 29 30
13  12月  1  2  3  4  5  6  7  8 … 30 31

0.範囲 B1:AM1 の左端から順に 月、火、水、…、水 を入力
1.セル B2 を選択して、次の[条件付き書式]を設定
    数式が    =MONTH(B2)<>$A2
    フォント色  白
2.セル B2 を[コピー]して、範囲 B2:AM13 に[貼り付け]
3.セル B2 に次式を入力して、此れを下方にズズーッとドラッグ&ペースト
    =DATE($A$1,$A2,1)-WEEKDAY(DATE($A$1,$A2,1),3)
4.セル C2 に式 =B2+1 を入力して、此れを下方にズズーッとドラッグ&ペースト
5.範囲 C2:C13 を右方にズズーッとドラッグ&ペースト
    • good
    • 0

思われていることと違っていましたらすみません。


またExcel2007を持っていないのでうまく動くかは保障できませんが、参考までに下記のコードをマクロに貼り付けて実行してみてください。(Excel2003では動きます)
新規Bookで作成してもらったらよいです。

Dim 縦カウント, 横カウント, 年, 月, 曜日, 日にち, 月末日 As Long
Dim 日付 As Date
Sheets("sheet1").Cells.ClearContents
縦カウント = 1
横カウント = 2
Do
Sheets("sheet1").Cells(縦カウント, 横カウント) = "日"
Sheets("sheet1").Cells(縦カウント, 横カウント + 1) = "月"
Sheets("sheet1").Cells(縦カウント, 横カウント + 2) = "火"
Sheets("sheet1").Cells(縦カウント, 横カウント + 3) = "水"
Sheets("sheet1").Cells(縦カウント, 横カウント + 4) = "木"
Sheets("sheet1").Cells(縦カウント, 横カウント + 5) = "金"
Sheets("sheet1").Cells(縦カウント, 横カウント + 6) = "土"
横カウント = 横カウント + 7
Loop Until 横カウント > 43
年 = Val(InputBox("作成する年を入力してください。yyyy"))
Sheets("sheet1").Cells(1, 1) = 年 & "年"
Sheets("sheet1").Columns("A:AQ").Select
Sheets("sheet1").Columns("A:AQ").EntireColumn.AutoFit
Sheets("sheet1").Range("A1").Select
縦カウント = 縦カウント + 1
Do
横カウント = 1
月 = 縦カウント - 1
Sheets("sheet1").Cells(縦カウント, 横カウント) = 月 & "月"
日付 = 年 & "/" & 月 & "/" & "1"
曜日 = Weekday(日付) + 1
If 月 = 1 Or 月 = 3 Or 月 = 5 Or 月 = 7 Or 月 = 8 Or 月 = 10 Or 月 = 12 Then 月末日 = 31
If 月 = 4 Or 月 = 6 Or 月 = 9 Or 月 = 11 Then 月末日 = 30
If 月 = 2 Then 月末日 = 28
If 年 Mod 4 = 0 And 月 = 2 Then 月末日 = 29
日にち = 1
Do
Sheets("sheet1").Cells(縦カウント, 曜日) = 日にち
曜日 = 曜日 + 1
日にち = 日にち + 1
Loop Until 日にち > 月末日
縦カウント = 縦カウント + 1
Loop Until 縦カウント > 13

参考までにマクロの作成手順です。(マイクロソフトのホームページ)
http://office.microsoft.com/ja-jp/excel/HP100141 …
    • good
    • 0
この回答へのお礼

ご回答、感謝しています。
お陰様でカレンダーが完成しました。
本当にありがとうございました。

お礼日時:2008/04/27 11:49

1から作るのは大変なので、Web上にある「万年カレンダー」の作り方を参考にされては如何でしょうか?



「万年カレンダーを作ろう」
http://popurap.fool.jp/help/nikki/dekiru/karenda …

「Excel関数で万年カレンダーを作る」
http://sunrise2001.dip.jp/coo/fncCalen.html

「万年カレンダー」
http://gakushuu.boy.jp/mannen_calender.htm
    • good
    • 0

追伸


月、曜日はウィンドウ枠の固定もしくは分割を利用すると良いでしょう。
http://www.eurus.dti.ne.jp/~yoneyama/Excel2007/e …
    • good
    • 0

A1に年


A2からA13まで縦に1から12(月)
B1から横に曜日

もしくは
A列(縦)は年
B2から縦に月
C1から横に曜日
これだと年が変わっても続けられます。

連続した文字の入力はオートフィルを使うと楽です。
http://www.eurus.dti.ne.jp/~yoneyama/Excel2007/e …
月は1月と入力してオートフィルして下さい。
    • good
    • 0

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