[[20090624210400]] 『六曜をカレンダーに反映させるには』(初心者) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『六曜をカレンダーに反映させるには』(初心者)
 A列の6〜36に新暦の日付、B2D2・・・V2Y2に新暦の月、B列の6〜36に旧暦の日付、C列の6〜36に六曜を入れた表を作り七曜カレンダーに「月」入力する毎に旧暦、六曜を反映させることができますか?

      A   B     C     D     E     F     G     H    I      J     K     L    M     N     O      P     Q      R    S     T     U      V     W     X    Y

 1                               新暦・旧暦 対照表    2009年  (平成 21年)                       
 2      1 月       2 月       3 月       4 月       5 月       6 月       7 月       8 月        9 月      10 月      11 月      12   月
 3
 4    日 旧暦 六曜   旧暦 六曜   旧暦 六曜   旧暦 六曜   旧暦 六曜   旧暦 六曜   旧暦 六曜   旧暦 六曜   旧暦 六曜   旧暦 六曜   旧暦 六曜   旧暦 六曜
 5
 6    1  12/ 6 大安   1/ 7 先勝   2/ 5 赤口   3/ 6 友引   4/ 7 仏滅   5/ 9 先勝  閏/ 9 先勝   6/11 仏滅   7/13 先勝   8/13 友引   9/15 大安  10/15 赤口
 7    2  12/ 7 赤口   1/ 8 友引   2/ 6 先勝   3/ 7 先負   4/ 8 大安   5/10 友引  閏/10 友引   6/12 大安   7/14 友引   8/14 先負   9/16 赤口  10/16 先勝
 8    3  12/ 8 先勝   1/ 9 先負   2/ 7 友引   3/ 8 仏滅   4/ 9 赤口   5/11 先負  閏/11 先負   6/13 赤口   7/15 先負   8/15 仏滅   9/17 先勝  10/17 友引
 9    4  12/ 9 友引   1/10 仏滅   2/ 8 先負   3/ 9 大安   4/10 先勝   5/12 仏滅  閏/12 仏滅   6/14 先勝   7/16 仏滅   8/16 大安   9/18 友引  10/18 先負
 10   5  12/10 先負   1/11 大安   2/ 9 仏滅   3/10 赤口   4/11 友引   5/13 大安  閏/13 大安   6/15 友引   7/17 大安   8/17 赤口   9/19 先負  10/19 仏滅
 11   6  12/11 仏滅   1/12 赤口   2/10 大安   3/11 先勝   4/12 先負   5/14 赤口  閏/14 赤口   6/16 先負   7/18 赤口   8/18 先勝   9/20 仏滅  10/20 大安
 12   7  12/12 大安   1/13 先勝   2/11 赤口   3/12 友引   4/13 仏滅   5/15 先勝  閏/15 先勝   6/17 仏滅   7/19 先勝   8/19 友引   9/21 大安  10/21 赤口
 13   8  12/13 赤口   1/14 友引   2/12 先勝   3/13 先負   4/14 大安   5/16 友引  閏/16 友引   6/18 大安   7/20 友引   8/20 先負   9/22 赤口  10/22 先勝
 14   9  12/14 先勝   1/15 先負   2/13 友引   3/14 仏滅   4/15 赤口   5/17 先負  閏/17 先負   6/19 赤口   7/21 先負   8/21 仏滅   9/23 先勝  10/23 友引
 15  10  12/15 友引   1/16 仏滅   2/14 先負   3/15 大安   4/16 先勝   5/18 仏滅  閏/18 仏滅   6/20 先勝   7/22 仏滅   8/22 大安   9/24 友引  10/24 先負
 16  11  12/16 先負   1/17 大安   2/15 仏滅   3/16 赤口   4/17 友引   5/19 大安  閏/19 大安   6/21 友引   7/23 大安   8/23 赤口   9/25 先負  10/25 仏滅
 17  12  12/17 仏滅   1/18 赤口   2/16 大安   3/17 先勝   4/18 先負   5/20 赤口  閏/20 赤口   6/22 先負   7/24 赤口   8/24 先勝   9/26 仏滅  10/26 大安
 17  13  12/18 大安   1/19 先勝   2/17 赤口   3/18 友引   4/19 仏滅   5/21 先勝  閏/21 先勝   6/23 仏滅   7/25 先勝   8/25 友引   9/27 大安  10/27 赤口
 19  14  12/19 赤口   1/20 友引   2/18 先勝   3/19 先負   4/20 大安   5/22 友引  閏/22 友引   6/24 大安   7/26 友引   8/26 先負   9/28 赤口  10/28 先勝
 20  15  12/20 先勝   1/21 先負   2/19 友引   3/20 仏滅   4/21 赤口   5/23 先負  閏/23 先負   6/25 赤口   7/27 先負   8/27 仏滅   9/29 先勝  10/29 友引
 21  16  12/21 友引   1/22 仏滅   2/20 先負   3/21 大安   4/22 先勝   5/24 仏滅  閏/24 仏滅   6/26 先勝   7/28 仏滅   8/28 大安   9/30 友引  11/ 1 大安
 22  17  12/22 先負   1/23 大安   2/21 仏滅   3/22 赤口   4/23 友引   5/25 大安  閏/25 大安   6/27 友引   7/29 大安   8/29 赤口  10/ 1 仏滅  11/ 2 赤口
 23  18  12/23 仏滅   1/24 赤口   2/22 大安   3/23 先勝   4/24 先負   5/26 赤口  閏/26 赤口   6/28 先負   7/30 赤口   9/ 1 先負  10/ 2 大安  11/ 3 先勝
 24  19  12/24 大安   1/25 先勝   2/23 赤口   3/24 友引   4/25 仏滅   5/27 先勝  閏/27 先勝   6/29 仏滅   8/ 1 友引   9/ 2 仏滅  10/ 3 赤口  11/ 4 友引
 25  20  12/25 赤口   1/26 友引   2/24 先勝   3/25 先負   4/26 大安   5/28 友引  閏/28 友引   7/ 1 先勝   8/ 2 先負   9/ 3 大安  10/ 4 先勝  11/ 5 先負
 26  21  12/26 先勝   1/27 先負   2/25 友引   3/26 仏滅   4/27 赤口   5/29 先負  閏/29 先負   7/ 2 友引   8/ 3 仏滅   9/ 4 赤口  10/ 5 友引  11/ 6 仏滅
 27  22  12/27 友引   1/28 仏滅   2/26 先負   3/27 大安   4/28 先勝   5/30 仏滅   6/ 1 赤口   7/ 3 先負   8/ 4 大安   9/ 5 先勝  10/ 6 先負  11/ 7 大安
 28  23  12/28 先負   1/29 大安   2/27 仏滅   3/28 赤口   4/29 友引  閏/ 1 大安   6/ 2 先勝   7/ 4 仏滅   8/ 5 赤口   9/ 6 友引  10/ 7 仏滅  11/ 8 赤口
 29  24  12/29 仏滅   1/30 赤口   2/28 大安   3/29 先勝   5/ 1 大安  閏/ 2 赤口   6/ 3 友引   7/ 5 大安   8/ 6 先勝   9/ 7 先負  10/ 8 大安  11/ 9 先勝
 30  25  12/30 大安   2/ 1 友引   2/29 赤口   4/ 1 仏滅   5/ 2 赤口  閏/ 3 先勝   6/ 4 先負   7/ 6 赤口   8/ 7 友引   9/ 8 仏滅  10/ 9 赤口  11/10 友引
 31  26   1/ 1 先勝   2/ 2 先負   2/30 先勝   4/ 2 大安   5/ 3 先勝  閏/ 4 友引   6/ 5 仏滅   7/ 7 先勝   8/ 8 先負   9/ 9 大安  10/10 先勝  11/11 先負
 32  27   1/ 2 友引   2/ 3 仏滅   3/ 1 先負   4/ 3 赤口   5/ 4 友引  閏/ 5 先負   6/ 6 大安   7/ 8 友引   8/ 9 仏滅   9/10 赤口  10/11 友引  11/12 仏滅
 33  28   1/ 3 先負   2/ 4 大安   3/ 2 仏滅   4/ 4 先勝   5/ 5 先負  閏/ 6 仏滅   6/ 7 赤口   7/ 9 先負   8/10 大安   9/11 先勝  10/12 先負  11/13 大安
 34  29   1/ 4 仏滅               3/ 3 大安   4/ 5 友引   5/ 6 仏滅  閏/ 7 大安   6/ 8 先勝   7/10 仏滅   8/11 赤口   9/12 友引  10/13 仏滅  11/14 赤口
 35  30   1/ 5 大安               3/ 4 赤口   4/ 6 先負   5/ 7 大安  閏/ 8 赤口   6/ 9 友引   7/11 大安   8/12 先勝   9/13 先負  10/14 大安  11/15 先勝
 36  31   1/ 6 赤口               3/ 5 先勝               5/ 8 赤口               6/10 先負   7/12 赤口               9/14 仏滅              11/16 友引


 出来ると思いますよ。

 例えば旧暦の日付を求める場合
 列方向は
  1月なら2列、2月なら4列、3月なら6列
 行方向は
  1日なら6行、2日なら7行、3月なら8行・・・
 の交差したセルの値を表示すればよい

 です。

 >七曜カレンダーに「月」入力する毎に
 これって、上記の表とは別の表ですよね。
 これに関してのご説明(セル配置や使用している数式など)が
 全くない様ですが・・・?

 (HANA)

 説明不足で申し訳ありません、シート1に祝日、24節季リスト、シート2にカレンダー表示 させています。 
 日にち =IF($B$1<>MONTH(DATE($A$1,$B$1,1)-WEEKDAY(DATE($A$1,$B$1,1))+COLUMN(A1)+7*(ROW(A1)-1)),"",DATE($A$1,$B$1,1)-WEEKDAY(DATE($A$1,$B$1,1))+COLUMN(A1)+7*(ROW(A1)-1))
 祝日24節季 =IF(COUNTIF(祝日,A$3),INDEX(祝日名,MATCH(A$3,祝日),1),"")
 対象表を別シートに入力しシート2二表示させたいのです、宜しくお願いします。
 

      シート2

     A      B       C         D        E        F        G
  1  2009	   9					
  2  日  	  月	 火	  水	  木	  金	  土
  3		  1	   2	   3 	   4	   5
  4  						
  5  6	   7	  8	   9	  10	  11	  12
  6	白露					
  7 13	  14	 15	  16	  17	  18	  19 
  8					 	
  9 20	  21	 22	  23	  24	  25	  26
 10	敬老の日	国民の休日	秋分の日			
 11 27	  28	 29	  30			


 シート2のどこにどの様に表示させたいのかよく分かりませんが
 旧暦・六曜が、「旧暦・六曜」シートに有る場合
 A3が対応するセルに
=IF(A3="","",INDEX(旧歴・六曜!$B$6:$Y$36,DAY(A3),$B$1*2-1))

 これで、旧暦が表示出来ると思います。

 (HANA)


 こんにちは。かみちゃん です。

 > 旧暦、六曜を反映させることができますか?

 HANAさんのアドバイスにより、解決すればいいのですが、
 以下の過去ログも参考になるかもしれません。
[[20060911123704]] 
 また、他の掲示板の過去ログで申し訳ありませんが、以下のものも参考になると思います。
http://park7.wakwak.com/~efc21/cgi-bin/exqalounge.cgi?print+200610/06100146.txt
http://excelfactory.net/excelboard/excelvba/cfs.cgi?word=%98Z%97j&andor=and&logs=17.txt

 私は、これらの過去ログの方法で同じようなことをしていたことがあるので、書かせていただきました。

 (かみちゃん)
 2009-06-25  9:16


 今仕事から帰ってきました返事が遅くなり申し訳ないです。
 また説明不足ですいません、表示させたいところはシート2の2、4、6、8、10、12の行です。

     シート2

     A      B       C         D        E        F        G
  1  2009	   9					
  2  日  	  月	 火	  水	  木	  金	  土
  3		  1	   2	   3 	   4	   5
  4  						
  5  6	   7	  8	   9	  10	  11	  12
  6						
  7 13	  14	 15	  16	  17	  18	  19 
  8					 	
  9 20	  21	 22	  23	  24	  25	  26
 10				
 11 27	  28	 29	  30
 12	

 こんにちは。かみちゃん です。

 > 表示させたいところはシート2の2、4、6、8、10、12の行です。

 シート2の2行目は、曜日のように思うのですが、ここに何を表示したいのですか?

 また、私の提案は、VBAで処理する案ですが、年月日から、六曜を算出する方法ではいけないのでしょうか?

 (かみちゃん)
 2009-06-25 20:56


 こんにちは。かみちゃん です。

 > VBAで処理する案ですが、年月日から、六曜を算出する方法

 私が使っているファイルから、サンプルコードにしてみたので、ご紹介させていただきます。
 六曜の算出については、
 旧暦 for VB という、Visual BasicまたはExcel VBAで旧暦を計算する標準モジュール
 を使います。

 まず、
http://www.vector.co.jp/soft/win95/personal/se243537.html
 から kyuurekiVB.lzh をダウンロードし、解凍します。

 その後、旧暦.basを標準モジュールにインポートします。
 具体的なインポートの方法がわからない場合は、
http://www.atmarkit.co.jp/fwin2k/win2ktips/469funcexport/funcexport.html
 の「手順2―「.bas」ファイルを任意のブックにインポートする」を参考にしてください。

 インポートが終われば、以下のようなコードを記述して、シート2をアクティブにして、
 Sampleマクロを実行してみてください。

 Sub Sample()
   Dim c As Range

   For Each c In Range("A3:G3,A5:G5,A7:G7,A9:G9,A11:G11,A13:G13")
     If Not IsEmpty(c.Value) And IsNumeric(c.Value) Then
       Calc_Kyureki Range("A1").Value, Range("B1").Value, c.Value '新暦から旧暦を算出
       c.Offset(1).Value = Kyureki.QRokuyou
     End If
   Next
 End Sub

 六曜カレンダーの結果は、以下のようなところで確認できそうです。
http://www.ajnet.ne.jp/dairy/

 (かみちゃん)
 2009-06-25 21:15


 >表示させたいところはシート2の2、4、6、8、10、12の行です。
 と言う事ですが、2行目は曜日が入っていますが・・・。
 それから、「祝日24節季」の表示は不要になるのですか。。。?
 旧暦と六曜は、同じセルに表示するのですか?

 >A3が対応するセルに
 >=IF(A3="","",INDEX(旧歴・六曜!$B$6:$Y$36,DAY(A3),$B$1*2-1))
 は、やってみてもらえていますか?
 その結果、どこが希望と違いますか?

 実際に値が入った結果図も載せていただければと思います。

 (HANA)

 皆さん有難うございます、まったくの初心者ですのでお手数を掛けてすみません。
 シート2の2、4、6、8、10、12は4、6、8、10、12の間違いです。
 「祝日24節季」入れたいので、1行増して旧暦と六曜を表示したいです。(同じセルでも別でもかまいません)
 3の行に日付、4の行に「祝日24節季」、5の行に旧暦と六曜を表示できればお願いします。

 =IF(A3="","",INDEX(旧歴・六曜!$B$6:$Y$36,DAY(A3),$B$1*2-1))
 結果図は下記の様になります。
 2009	2					
日	月	火	水	木	金	土
1	2	3	4	5	6	7

	9/16		9/23		9/30	


 ご説明と実際のデータと違うところが有るように思います。
 以下のシートを作成し、確認して下さい。

 その後、実際に使って居られるシートとどこが違うのか
 教えて下さい。

 旧暦・六曜シート
 最初に載せて居られる表で、
 データが6行目から(A列の1日を表す行が6行目に)
 1月がB,C列 2月がD,E列・・・・と
 配置されるようにして下さい。

 カレンダーシート
	[A]	[B]	[C]	[D]	[E]	[F]	[G]
[1]	2009	2					
[2]	日	月	火	水	木	金	土
[3]	1	2	3	4	5	6	7
[4]							
[5]	1/7	1/8	1/9	1/10	1/11	1/12	1/13
[6]
 A3セルに
=IF($B$1<>MONTH(DATE($A$1,$B$1,1)-WEEKDAY(DATE($A$1,$B$1,1))+COLUMN(A1)+7*(ROW(A1)-1)),"",DATE($A$1,$B$1,1)-WEEKDAY(DATE($A$1,$B$1,1))+COLUMN(A1)+7*(ROW(A1)-1))
 A5セルに
=IF(A3="","",INDEX(旧歴・六曜!$B$6:$Y$36,DAY(A3),$B$1*2-1))

 として、フィルドラッグ。

 念のため、
  確認1 =DAY(A3)
  確認2 =B1*2-1
 二つの式を単独でどこかのセルに計算させ
 結果を教えて下さい。

 (HANA)

 お手数お賭けして申し訳ありません。確認、カレンダーシートともに下のようになりました。

   確認1 =DAY(A3) は1
  確認2 =B1*2-1 は3になります。

 カレンダーシート
	[A]	[B]	[C]	[D]	[E]	[F]	[G]
 [1]	2009	2					
 [2]	日	月	火	水	木	金	土
 [3]	1	2	3	4	5	6	7
 [4]							
 [5]	1/7	1/8	1/9	1/10	1/11	1/12	1/13
 [6]


 でしたら、現在入っているA5セルの式を
=IF(A3="","",TEXT(INDEX(旧歴・六曜!$B$6:$Y$36,DAY(A3),$B$1*2-1),"m/d")
&"・"&INDEX(旧歴・六曜!$B$6:$Y$36,DAY(A3),$B$1*2))
 ↑2行で一つの式です

 この式に変更して、必要範囲にフィルドラッグしてもらうとどうでしょう?

 (HANA)

HANAさん大変お手数を掛けて申し訳ありませんでした。できました!

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.