• ベストアンサー

EXCELマクロでの曜日の表示

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

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

  • ベストアンサー
  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.2

マクロでなくてはダメなのでしょうか? A4セルに =DATE($A1,$A2,A3) と入れて 書式を ユーザー定義 で aaa 右へコピィしてみてください。

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

その他の回答 (5)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.6

こんばんは。 >A1セルに年、A2セルに月、A3~AE3に日付(1~31) >が入力されている状態で、A4~AE4に曜日(日・月・・・土)を表示 >させたいのですが 少なくとも、末日まで入力するとすれば、31までとは限りません。 それから、マクロでなくてはならない理由はないとしたら、マクロならではの特別な部分が必要だと思います。当然、日付もマクロで入れます。 Sub Test()   Dim y As Integer   Dim m As Integer   Dim i As Integer   Dim mDate As Variant   y = Range("A1").Value   m = Range("A2").Value   If Not IsDate(DateSerial(y, m, 1)) Then     MsgBox "日付が入っていないかもしれません。", vbInformation     Exit Sub   Else     mDate = DateSerial(y, m, 1)     If Year(mDate) > 2020 Or Year(mDate) < 1901 Then       MsgBox "年数の入れ方が違うかもしれません。", vbCritical       Exit Sub     End If   End If   i = Day(DateSerial(y, m + 1, 0))   Range("A3").Resize(2, 31).Clear   Range("A3").Value = mDate   Range("B3").Resize(, i - 1).Formula = "=RC[-1]+1"   Range("A4").Resize(, i).Formula = "=R[-1]C"   Range("A3").Resize(, i).NumberFormatLocal = "d"   Range("A4").Resize(, i).NumberFormatLocal = "aaa" End Sub

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

問題の記述から想像して、 「EXCEL関数での曜日の表示」と解釈すると (1) A4セルに以下を入力 =MID("日月火水木金土",WEEKDAY(DATE($A$1,$A$2,A3)),1) (2) A4セルをA5~AE4にコピー。 こんなもんかな?

全文を見る
すると、全ての回答が全文表示されます。
  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.4

一例です。 Sub test() Dim Rng As Range Range("A4").FormulaR1C1 = "=DATE(R1C1,R2C1,R[-1]C)" Set Rng = Range(Range("A3"), Range("A3").End(xlToRight)).Offset(1) Range("A4").AutoFill Destination:=Rng, Type:=xlFillDefault Rng.NumberFormatLocal = "aaa" End Sub

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

#1です。勘違いしてました。日付けまで入っているのですね。 曜日はFormat関数で表示できます。 For i = 1 To 31 If ActiveSheet.Cells(3, i).Value <> "" Then ActiveSheet.Cells(4, i).Value = Format(DateSerial(ActiveSheet.Cells(1, 1).Value, ActiveSheet.Cells(2, 1).Value, ActiveSheet.Cells(3, i).Value), "aaa") End If Next i

全文を見る
すると、全ての回答が全文表示されます。
  • marbin
  • ベストアンサー率27% (636/2290)
回答No.1

別々のセルに入力されているデータから日付けを生成するのは DateSerial関数 が便利です。 Dim i As Integer i = 3 With ActiveSheet .Cells(i, 1).Value = DateSerial(.Range("A1").Value, .Range("A2").Value, i - 2) End With

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

関連するQ&A

  • 自動で日付、曜日を表示した

    エクセルで、例えば A1セルに西暦、B1セルに月を入力すれば A3セルから順に下に日付(1日 2日 3日・・・) B3セルから順に下に曜日(例えば今月なら金 土 日) というように自動的に表示できるようにしたいのですか 可能でしょうか? マクロを使えばいいのでしょうか? 可能ならやり方を教えてください。 よろしくお願いします!

  • Excelで曜日の自動表示をしたい

    先程、Excelで日付を自動で表示させる方法を質問したのですが、 今度は曜日も自動で表示させたくなったので、 再び質問させて頂きました・・。 Excelで年と月を入力しているセルを読み取り、 それに適合する曜日を自動で表示する式を教えて下さい。 例えば、 A1セルに、2003 A2セルに、5 A3セル~A33セルに、日付 が表示されている時に、 B3セル~B33セルに、A列に表示されている日付に合致した曜日を 自動で表示させるような式があれば、教えて下さい。 よろしくお願いします。

  • 該当の曜日に色を塗るマクロの作成方法

    お世話になります。 マクロの作成方法を教えてください。 ≪使用PC≫ windows XP Excel2003 ある『ボタン』を作成したいと思っております。 『月曜日』というボタンを押すと、日付と月曜日のセルに色を塗る。 『火曜日』というボタンを押すと、日付と火曜日のセルに色を塗る。 『水曜日』・・・・・ というボタンは作成可能でしょうか。 【例】 年は(セルA1) 月は(セルA2) 日は(セルA3~セルAE3) 曜日は(セルA4~セルAE4) 年と月と日は、べた打ちで数値を入力しています。 曜日は月と日から関数を入力し、自動で出ています。 IF(A$3="","",DATEVALUE($A$1&"/"&$A$2&"/"&A$3)) 条件付書式ではなく、ボタンを作りたいです。 他に記載の不備がありましたら、申し訳ございません。 よろしくお願いいたします。

  • excel 曜日表示

    EXCELで下記の説明から操作して年月日でーたから自動で曜日を表示させるようにしました。 結果 a1=2007年10月2日が a2=火でなければならないところ 月となりました。とりあえずは day(a1+1)で無理やり火と表示させたのですが、何が悪いのでしょうか。 よろしくお願いします。 (説明) ●表示形式を設定して曜日を表示する  日付に対応する曜日を表示する最も簡単な方法は、曜日の表示形式を設定することだ。曜日を表示したいセルに日付のシリアル値を入力あるいは参照して表示形式を表に示す記号を設定すればよい。 表『曜日の表示形式』  記号 表示スタイル  表示内容 ddd 英語の省略記号  Sun~Sat dddd 英語表記  Sunday~Saturday aaa 日本語の省略記号  日~土 aaaa 日本語表記  日曜日~土曜日 操作 通常は参照先のセルと同じ表示形式が自動設定されるが、参照式を入力するセルの表示形式がすでに設定変更されている場合は(2)のように自動設定されないが、続けて(3)以降の操作を行えば良い。 (1) 曜日を表示するセルに日付を参照する数式「=C12」を入力する (2) 参照先と同じ表示形式で値が表示される 操作 (1) 設定するセルを右クリックしてショートカットメニューを開く (2)[セルの書式設定]を選択する (3) セルの書式設定ダイアログボックスが開く (4)[表示形式]タブをクリックする (5)[ユーザー定義]をクリックする (6) 種類の欄をクリックして「aaa」を入力する (7)[OK]をクリックする (8) 曜日が表示される

  • エクセルで各シートに日付・曜日一括表示するには

    (1)エクセルで7月31日分のシートをつくり、今年のカレンダーどおりの日付・曜日を(各シートのA1セルに、いちいち入力するのではなく)一括で各シートのA1セルに表示できる方法があれば、教えて下さい。 (2)エクセルで昨年7月の平日の数だけシートがあるファイルがあります。各シートのA1セルには、「平成19年7月○日(○曜日)」と入力されています。 このファイルを、今年の7月の平日カレンダーに一括置換するには、どうすればいいでしょうか? 昨年と今年は平日の日付はもちろん、同じ日でも曜日が違いますので、各シートを開き、いちいち日付・曜日を直さなければいけないのでしょうか。教えて下さい。宜しくお願いします。

  • EXCELで最初の曜日を入力したら他のセルで自動で表示したい

    EXCELで最初の曜日を入力したら他のセルで自動で表示したい 一か月分の日報を作りました、曜日は毎月変わる為に最初の曜日を入力したら他のセルに自動で順番に表示するようにしたいです。 例:A1 土   A2 日   A3 月 A1に「土」と入れたらA2、A3に日、月と表示されるようにしたいです。 説明の都合上連続したセルとして書いてますが実際は離れた位置にあるセルなのでドラッグして一気に表示は使えません。 何かいい方法はないでしょうか? 判る方がいらっしゃいましたら、どうぞよろしくお願いします。

  • エクセルで曜日を表示したい

    いつもお世話になります。 エクセルのことで教えてください。 WEEKDAY関数を使って、A3セルに曜日を表示させたいと考えています。 (1)西暦は、A1セルでプルダウンで選ぶことになっています。  プルダウンから「2017,2018,2019」という具合で選べます。 (2)月日は、A2セルに手入力で4桁の数字を入力することになっています。  7月21日であれば、「0721」という具合で手入力します。(先頭の0は消えてしまいますが・・・) さて本題ですが、 A1セルとA2セルの情報を引っ張って、A3セルに、weekday関数で曜日を反映させる方法を教えてください。 なおA4やA5セル等、余白セルはありますので、他のセルや他のシートを経由することも可能です。 どうぞよろしくお願いいたします。

  • Excelで曜日を表示させると、「土」となるエラー

    Excelで、A1に日付を記入して、B1に曜日が表示されるようにB1に関数を =TEXT(A1,"aaa") または =CHOOSE(WEEKDAY(A1),"日","月","火","水","木","金","土") と入力したのですが、A1が空白だと「土」と表示されてしまいます。出来れば何も表示されないようにしたいのですが、 何か、解決する方法はあるのでしょうか? ご回答お待ちしております。よろしくお願いいたします。

  • 曜日の表示

    EXCELで下記の説明から操作して年月日データから自動で曜日を表示させるようにしました。 結果 a1=2007年10月2日が a2=火と表示させたのですが、 日付データが入ってない場合曜日データも表示させないようにはできますか。 よろしくお願いします。 (説明) ●表示形式を設定して曜日を表示する  日付に対応する曜日を表示する最も簡単な方法は、曜日の表示形式を設定することだ。曜日を表示したいセルに日付のシリアル値を入力あるいは参照して表示形式を表に示す記号を設定すればよい。 表『曜日の表示形式』  記号 表示スタイル  表示内容 ddd 英語の省略記号  Sun~Sat dddd 英語表記  Sunday~Saturday aaa 日本語の省略記号  日~土 aaaa 日本語表記  日曜日~土曜日 操作 通常は参照先のセルと同じ表示形式が自動設定されるが、参照式を入力するセルの表示形式がすでに設定変更されている場合は(2)のように自動設定されないが、続けて(3)以降の操作を行えば良い。 (1) 曜日を表示するセルに日付を参照する数式「=C12」を入力する (2) 参照先と同じ表示形式で値が表示される 操作 (1) 設定するセルを右クリックしてショートカットメニューを開く (2)[セルの書式設定]を選択する (3) セルの書式設定ダイアログボックスが開く (4)[表示形式]タブをクリックする (5)[ユーザー定義]をクリックする (6) 種類の欄をクリックして「aaa」を入力する (7)[OK]をクリックする (8) 曜日が表示される

  • エクセル2010で日付、曜日の表示法

    エクセル2010で当日の日付、曜日を一つのセルに【10月8日(月)】と表示させるにはどの様な関数を用いれば良いのでしょうか。また、連続した日付、曜日はオートフィルすれば表示できますか。合わせてお教え下さい。お願いいたします。

専門家に質問してみよう