• ベストアンサー

多年カレンダーの自作

画像のようなシンプルな複数年のカレンダーを任意の期間で作れたらと思っているのですがおすすめのソフトなどあれば教えてください。エクセルでも作れますか?

質問者が選んだベストアンサー

  • ベストアンサー
  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.1

>おすすめのソフトなどあれば教えてください。 閲覧できる年を指定するものはネットにたくさんあるようです。 >エクセルでも作れますか? 作ってみました。最初、1ヶ月を関数で作ったんですが、説明が大変で、VBAに変更しました。関数では、コピーできる式を作るのが大変でしょう。何十年分も算式のコピーはしたくないですね。関数では、月初1日の曜日(書き出し位置)、土日の折り返し、前月と当月、翌月の判定など大変です。 VBAで基本的な計算は20~30行ですが、添付図にあるようなデザインに近くするのに50行くらい使ってしまいました。 万年カレンダー&万年祝日(しょっちゅう変更有り)にしてみましたが、回答に適さないので、祝日表示は省きました。祝日の表示も可能とお伝えしておきます。 新規のExcelブックを開いて、下記マクロを標準モジュールに貼り付けて実行します。「年の開始日」、「表示する年数」を設定してください。今は、「2019」年開始、「20」年間計算です。シート側では何もしません。非力なPCで、100年間の計算が15秒程度でした。当方、Win10、Excel2010です。 Sub myCalendar()  Dim y As Integer, m As Integer, w As Integer '// 年,月,週  Dim drw As Integer  '// 月の行数  Const yStart = 2019 '// 年の開始日  Const yMax = 20   '// 表示する年数  Dim rw As Integer, col As Integer  '// 行,列カウンタ  Dim Dt As Date    '// 年月日  Dim wd1stDay As Date   '// 月初の曜日  Dim prtDay As Integer, varDay As Variant '// 表示する日    Application.ScreenUpdating = False  Cells.Clear  Rows("1:" & 7 * yMax).Delete Shift:=xlUp  '// 表題 月と各月の曜日  With Range("A1")   Dim mC As Integer   For m = 1 To 12    mC = (m - 1) * 8 + 2    .Offset(0, mC).Value = m    With .Offset(0, mC).Range("A1:G1")     .HorizontalAlignment = xlCenterAcrossSelection     .Font.Size = 40     .Font.Italic = True    End With    .Offset(1, mC).Range("A1:H1") = Split("日,月,火,水,木,金,土, ", ",")    .Offset(1, mC).Range("A1:A" & 7 * yMax).Font.ColorIndex = 3   Next   .Offset(1, 1) = "  "  End With    '// 年月日  rw = 2  With Range("A1")   For y = 0 To yMax - 1    Range(.Offset(rw, 0), .Offset(rw, 8 * 12)).Borders(xlEdgeTop).LineStyle = xlContinuous    .Offset(rw, 0) = yStart + y '// 年    .Offset(rw, 0).Font.Size = 20    With Range(.Offset(rw, 0), .Offset(rw + 2, 0))     .Merge     .Borders.LineStyle = xlContinuous     .Font.Bold = True    End With    With Range(.Offset(rw, 1), .Offset(rw + 2, 1))     .Merge     .Borders.LineStyle = xlContinuous    End With        col = 2    For m = 1 To 12     For drw = 1 To 6      wd1stDay = Weekday(DateSerial(yStart + y, m, 1))      For w = 1 To 7       Dt = DateSerial(yStart + y, m, (drw - 1) * 7 + w)       If (drw - 1) * 7 + w < wd1stDay Then        prtDay = 0: varDay = ""       ElseIf (drw - 1) * 7 + w = wd1stDay Then        prtDay = 1: varDay = 1       ElseIf Month(DateSerial(yStart + y, m, prtDay + 1)) = m Then        prtDay = prtDay + 1: varDay = prtDay       Else        varDay = ""       End If       .Offset(rw + drw - 0, col + (m - 1) * 7 + w - 1) = varDay      Next     Next     col = col + 1    Next    rw = rw + 7   Next   Range(.Offset(rw, 0), .Offset(rw, 8 * 12)).Borders(xlEdgeTop).LineStyle = xlContinuous   Range(.Offset(2, 1), .Offset(rw - 1, 1)).Borders(xlEdgeRight).LineStyle = xlContinuous   Range(.Offset(1, 2), .Offset(rw, 8 * 12)).HorizontalAlignment = xlCenter  End With    Rows("2:" & rw).EntireRow.AutoFit  Columns("A:CS").EntireColumn.AutoFit  Application.ScreenUpdating = True End Sub

hennteko
質問者

お礼

希望通りのものを作ることができました!!ありがとうございました。

関連するQ&A

  • カレンダー作成ソフトウェア

    カレンダー作成のソフトウェアを探しています。 1、任意の画像にカレンダーを描き込み(貼り付け)できる。 2、カレンダーは多彩に編集できる。 3、印刷用ではなく画像用。 おすすめあれば教えて下さい、お願いします<m(__)m>

  • 書き込みができるカレンダー

    書き込みができるカレンダー http://www.johokan.hams.jp/soft/kakicale/index.html 現在、上記のカレンダーを重宝しています。 すごい便利なカレンダーなのですが、矢印が複数引くことができません。 矢印を複数引けるカレンダーをご存知無いでしょうか? フリーであれば嬉しいのですが、有料でも構いません。 是非、良いソフトを教えてください。 よろしくお願いいたします。

  • 複数枚の写真の載ったカレンダーの作り方

    デジカメで撮った娘の写真を集めてカレンダーにしたいと思っています。 1月分1枚の写真を載せたカレンダーを作れるお店はたくさん見つかるのですが、 複数枚(多くて6枚ほど)を1月分に載せれるお店が見つかりません。 どこかご存知ありませんか? 扱いやすいフリーソフトやエクセルでもできるよという方も 教えていただけると助かります。

  • カレンダー

    を初めて作ります。ワードあるいはエクセルまたはその他のソフトどのソフトが最適なのでしょう。また、カレンダー作成の入門書などもご紹介ください。どちらか一つでもよいので、よろしくお願いします。

  • GIMPでカレンダーが作りたいです。

    GIMPを使ってるのですが、カレンダーを作りたいと思ってます★ カレンダー作成のテンプレートのようなものか、カレンダー部分だけ(画像に挿し入れるだけのようなもの)で配布してるようなサイトありましたら教えてください。 エクセル対応じゃないものでお願いいたします。

  • カレンダーの自作 数字と絵を重ねる方法

    卓上カレンダーの自作を考えています。ワードを利用するつもりです。 B5の紙を半分にして切って使います。 絵を置いて、その上にサイトからDLしてきたカレンダーを重ねようと思っています。その場合、カレンダーの白色が画像を隠してしまいますよね?その白だけは重ねずに、数字や枠線のみを上にしたいのですが、可能でしょうか? それが無理な場合、エクセルでやった方がいいのでしょうか?

  • エクセルのテンプレートのカレンダーで

    エクセル2010のテンプレートのカレンダーで日にちが#VALUE!になります。 ダウンロードした物はMicrosoft office公式のカレンダーの構成 (任意の年)です。 http://office.microsoft.com/ja-jp/templates/TC010274124.aspx 数式を治さないといけないのかエクセルの設定なのか使い方をご教示お願いします。 私の環境はWindows7 Office Personal2010です。 よろしくお願いします。

  • 簡単なカレンダーを作るにはどうしたらいいですか?エ

    簡単なカレンダーを作るにはどうしたらいいですか?エクセル2019で 画像みたいなのです。こんなの手入力すればいいだろっていうかんじなんですが まあ一応教えて下さい 豪華にしなくていいです 予定の空白が5行分位あると少しうれしいかも

  • カレンダーについて

    はじめまして。私には3歳の甥がいます。その甥に特撮ヒーロー系の2007年度版カレンダーをプレゼントしようと思っています。 甥は今「ボウケンジャー」に(その前にはマジレンジャーにも)ハマっているので、そのカレンダーを探していました。しかし、そこで思ったのですがボウケンジャーって放送期間はいつくらいまでなのでしょうか?カレンダーを買ったはいいけど、来年早々にも最終回になったら寂しいなと思いまして・・・。調べてみたのですが、イマイチ特撮ヒーロー系の番組に弱くよく分かりません。仮面ライダーやウルトラマンにも興味があるようなのですが、その番組内容や放送期間についても分らないのです。 お勧めの特撮ヒーロー系カレンダーを教えていただけませんでしょうか? カテゴリ違いかもしれませんがよろしくお願いします。

  • 友達に披露宴の写真の自作カレンダーを贈りたい。

    先日友達が、披露宴をやりました。そこで、その写真で自作のカレンダーを作ってあげたいと思います。 フリーソフトでカレンダー出来るのあれば教えてください。 ちなみに、画像処理はGIMPでやる予定です。

専門家に質問してみよう