• ベストアンサー

Excel でカレンダーを作りたい(マクロなどで)

マクロなどを使って,Excel でカレンダーを作りたいと思ったのですが,難しくて挫折しています。具体的には以下のようなことを行ないたいと考えています。 特定のセルに例えば「09/04」と入力して Enter キーを押すとすると, (1)A1セルに「1」A2セルに「2」…A30セルに「30」と入力される。 (2)B1セルに「水」B2セルに「木」…B30セルに「木」と入力される。 (3)日曜日の日付と曜日のそれぞれのセルだけ太字になる。 情報をいただければ幸いです。

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

  • ベストアンサー
  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.1

関数を使用した一例です。 (1)仮にD1に2009/4と入力、セルの書式設定→表示形式をユーザ定義でyy/mとします。 (2)A1に=IF(MONTH($D$1)=MONTH(DATE(YEAR($D$1),MONTH($D$1),ROW(A1))),DATE(YEAR($D$1),MONTH($D$1),ROW(A1)),"")    B1に=A1    A1セルの書式設定→表示形式をユーザ定義でdとします。    B1セルの書式設定→表示形式をユーザ定義でaaaとします。 (3)A1:B1を選択→下方向に31行分コピー (4)A1:A31を選択→書式→条件付き書式→「数式が」を選択、=WEEKDAY($A1,2)=7→書式→フォントタブで太字を選択→OK (5)追加→B1:B31を選択→書式→条件付き書式→「数式が」を選択、=WEEKDAY($A1,2)=7→書式→フォントタブで太字、色欄で赤を選択→OK

Jerry_info_svs
質問者

お礼

大変役立つ情報をありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (3)

  • xls88
  • ベストアンサー率56% (669/1189)
回答No.4
Jerry_info_svs
質問者

お礼

大変役立つ情報をありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。
  • A88No8
  • ベストアンサー率52% (834/1602)
回答No.3

マクロで作るより簡単な関数を使用した一例です。 年月が曜日の上にあった法が判りやすいかなと考えてA1セルに基準月(4月1日)を設定します。 特徴は、基準月セルを中心とした相対参照なので、カレンダーの先頭に行を挿入しても整合性を保てるところ。その他は、#1のご回答と同じ条件付書式を使います。 (1)A1に4/1と入力、セルの書式設定→表示形式をユーザ定義でyy/mmとします。 (2)A2に=A1    B2に=A2    A3=IF(A2="","",IF(MONTH(A1)<>MONTH(A2+1),"",A2+1))    B3に=A3 (3)A3:B3を選択→下方向に30行分コピー (4)A2:A32セルの書式設定→表示形式をユーザ定義でdとします。    B2:B32セルの書式設定→表示形式をユーザ定義でaaaとします。 (5)A2:A32を選択→書式→条件付き書式→「数式が」を選択、=MOD($A2,7)=1→書式→フォントタブで太字を選択→OK (6)追加→B2:B32を選択→書式→条件付き書式→「数式が」を選択、=MOD($A2,7)=1→書式→フォントタブで太字、色欄で赤を選択→OK

Jerry_info_svs
質問者

お礼

大変役立つ情報をありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

こんにちは。 ご質問の指摘どおりに、マクロでできないということではありませんが、なかなか「難しい」です。 数式でコピーして作る方法がよいと思います。 >「09/04」と入力して Enter キーを押す Worksheet_Change イベント >(1)A1セルに「1」A2セルに「2」…A30セルに「30」と入力される。 A1:B1に数式を入れて、コピー数を決める >(2)B1セルに「水」B2セルに「木」…B30セルに「木」と入力される。 「aaa」書式コピー >(3)日曜日の日付と曜日のそれぞれのセルだけ太字になる。 文字列か、Weekday関数で、日曜日を探して、Font のプロパティを変更する。 http://oshiete1.goo.ne.jp/kotaeru.php3?qid=4810221 参考コード #6 ただし、これは横にコピーされます。

Jerry_info_svs
質問者

お礼

大変役立つ情報をありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • エクセルで行の高さの変更マクロの作成

    エクセルで各月の行事予定表を作成していますが、各月の初日を特定のセルに入力すると、自動的にその月の日にちと曜日が各セルの上段から下段に表示されるように作成しています。 例えば、セルA1に11/1と入力すると、セルA5からA36までに日付がB5からB36に曜日が表示されるようにし、セルC欄に行事内容を入力する行事予定表としています。 この場合、土曜日曜は休みなので行事が入らないため、その行(土曜日曜の行)の高さをボタンクリックで変更(希望の縮小高さに変更)できるマクロを教えてほしいのです。 また、これについては、他の表作成で、入力の無い行の行高縮小マクロにも利用可能ではと考えてもいます。 マクロの実行ボタンの作成は作成することができます。 ご教示をお願いいたします。

  • エクセル2003 週5のカレンダー

    週5のカレンダーを関数かマクロで作れないでしょうか? 質問で、同じ質問を探してみたんですが、見当たりません。 イメージとしては、 A1に西暦で「年」 B1に「月」 を入力すると、自動に日付を表示させたいのです。 因みに、A2、B2、C2、D2、E2、F2、G2は「曜日」を 固定で入力しておきます。 ほとんどのカレンダーは、 週6で作られていますが、 私が作りたいのは、週5です。 以下のイメージは、 実際のカレンダーとは違いますが、 例えると、30日と31日が6週目になる月は、 1週目の頭に持っていきたいんです。 ※表示上「_(アンダバーを入れてあります)」 _____(A)__(B)__(C)__(D)__(E)__(F)__(G) (1)_2010__3 (2)__日___月_____火____水____木____金___土 (3)__30___31_________________________________1 (4)___2____3_______4_____5______6_____7_____8 (5)___9___10______11___12_____13___14___15 (6)__16__17______18___19_____20___21___22 (7)__23__24______25___26_____27___28___29 他の質問を見て、試してみたんですが、 上手く行きませんでした。 さらに、土・日・祭日のセルの色を 自動に背景色が自動に黄色にできるといいのですが・・・。 アドバイスがありましたら、 よろしくお願い致します。

  • エクセル 特定の単語が入力されたときにセルの色を変える

    エクセル 特定の単語が入力されたときにセルの色を変える A1に日付を入力すると、A2に自動的に曜日が入る数式を入れています。 カレンダーのように1ヶ月分がまとめて表示されているわけではなく、入力が必要な日だけ日付を入れるような表になるのですが、土曜や日曜の場合、曜日のセルの色を変える方法を教えていただけますでしょうか。 条件付書式でやってみたのですが、曜日のセルに数式を入れて自動的に表示させている場合、うまくできませんでした。(直接、土曜や日曜と入力するときちんと色が変わったのですが)

  • Excelのカレンダーについて。

    Excelカレンダーについての質問です。 Excel2010を使用しています。 seet1にカレンダーを作りました。 セルに、それぞれ年と月を入力すると、その年月の日付と曜日が縦に表示されるように設定しました。更に日付・曜日の横に予定を書き込めるようにレイアウトしました。 しかし、このままだと年と月を変更すると、日付・曜日は変更されますが、予定の部分はそのままです。年と月を変更すると、日付だけでなく、予定の部分も変更できるようにするにはどうしたらよいでしょうか? また、複数の人のカレンダーを管理するようにしたいです。 seet2に、番号と氏名の組み合わせのメンバーリストを作っています。 seet1のセルに番号を入力すると別のセルに氏名が表示されるようにしています。 番号入力し、氏名を変更すると、カレンダーもその人用に変更できるようにするにはどうすればよいでしょうか? 色々検索してみたのですが、これというものが見つからず、質問させて頂いております。 また、わかりづらい文章となっているかもしれません。すみません。 ご回答よろしくお願い致します。

  • Excelのマクロを使った印刷

    Excelである特定のセルでEnterキーを押すと 印刷をするマクロを作りたいのですけど どなたか教えてください

  • エクセルでカレンダー作成 VBAが必要かも?

    仕事で使うのですが、セルA1に今日の日付を入れた場合、B1セルに90日後の日付及曜日が自動で、出るよう設定しました。そこで90日後が、土日、祭日及び振り替え休日だったら、前の日の、土日祭日以外の一番近い日にずらさなければいけません。 設定方法も色々ありますが、私のレベルから以下の様に設定しました・ 1) セルB1に「 =A1+90 」と書式設定で、「 yyyy/m/d(aaa) 」と入力 2) A1に今日の日付の2006/12/14と入力 3) B1には2007/3/14(水)とでます。 4) そこで土日は曜日で休日と分かりますが、土日以外の祭日を判断するのはイチイチ、カレンダーを見なければいけなくて、人的処理になりミスもでます。 5) あらかじめパソコンの中に一年分のカレンダーを設定しとくと、90日後が祭日だったら、たとえば2006/3/21(春分の日)とでるような設定はできますか? 6) VBAが必要でした、プログラムを教えて頂きたいです。 7) 良いURLがありましたら、教えてください。 宜しくお願いいたします。

  • EXCELマクロでの曜日の表示

    はじめまして。 EXCELマクロで曜日を表示させたいのですが、方法がわかりません。 A1セルに年、A2セルに月、A3~AE3に日付(1~31) が入力されている状態で、A4~AE4に曜日(日・月・・・土)を表示 させたいのですが、どのようにすればよいでしょうか? あまり文章を書くのが得意ではないので、わかりにくいかもしれませんが、宜しく御願いします

  • エクセルマクロで日付検索について

    エクセルのマクロで日付を検索するマクロについて質問です。 ブックAのシート1のA列に A1 2017/3/13 A2 2017/4/1 A3 2017/4/19 A4 2017/5/16 A5 2017/7/17 A6 2017/9/5 というような日付が入っています。 ブックBのシート1のA1セルに2017/6/3と入力してマクロを実行した際に その日付に一番近い一つ前の日付を探し、見つけた日付のB列のセルを ブックBのシート1のA2セルに表示したいです。 今回の例であれば2017/6/3に対してブックAのシート1のA列はA4セルが当てはまり その当てはまったA4セルの1つ横のB4セルの内容をブックBのシート1のA2セルに表示するということです。 よろしくお願いします。

  • エクセル カレンダー入力で教えてください

    カレンダー入力で A列B列C列があってA列に和年号 B列月 C列日としてあります 例えばA1のセルをクリックするとカレンダーが出てきて日付け平成20年10月31日をクリックするとA1に20 B1に10 C1に31 と各セルに値が入るようにしたいのですが ご教授お願いします。

  • エクセルカレンダーの作り方

    エクセル2003でカレンダーを作成したいです。 作成方法を教えていただきたく投稿いたしました。 祝日カレンダーというシートを作成し、 A5~A50まで日付(2013/01/01と表記) B5~B50まで祝日の名前が入った表を作成しました。           A       B      6  2013/01/01   元旦 7  2013/01/14   成人の日 8  2013/02/11   建国記念の日 9  2013/03/20   春分の日 10 2013/04/29   昭和の日 といった感じです。 別シート「シート1」のE2のセルに 2013/01/01 と日付をいれてあります。 この日付は毎日変わるのですが、そのすぐしたのセルE3のセルに 祝日カレンダーシートに対応している日付がきたら、祝日の名前を表示させたいのです。 1/1なら元旦。1/14なら成人の日。 といった感じです。 このやり方を教えていただけないでしょうか。 よろしくお願い致します。

専門家に質問してみよう