電子書籍の厳選無料作品が豊富!

Excel VBAで日付を曜日に変換したい。

A1セル:2010/6/2 を B1セル:水 とするには、Excel VBA ではどうすればいいのでしょうか?

A 回答 (6件)

次のようにしても良いでしょう。



Range("B1") = WeekdayName(Weekday(Range("A1")), True)
    • good
    • 1
この回答へのお礼

たくさんの回答、ありがとうございます。
これを使わせていただきます。

お礼日時:2010/06/02 21:01

日付の関数でWEEKDAY関数が見つかったが、曜日でなく数字だったから質問、と察します。



このWEEKDAY関数結果からさらにCHOOSE関数使うと月火水と変換できます。

CHOOSE(WEEKDAY(求めたい日付),日,月,火・・)という感じです。

CHOOSE関数は、ヘルプやネットでもWEEKDAYの曜日変換説明と合わせて掲載される事多いです。こちらも覚えた方が良いと思います。CHOOSE関数を学習して下さい。

どれを使ったらダメという訳でないので参考に。
    • good
    • 1

range("B1") = weekdayname(weekday(range("A1")),true)


なんてやり方もありはしますが,format(range("A1"),"aaa")の方が手っ取り早いですね。

range("B1") = range("A1")
range("B1").numberformatlocal = "aaa"
あるいはそもそも
range("A1").numberformatlocal = "m/d(aaa)"
のようなやり方で済ませてしまう場合も多いです。


#余談
しばしばweekday関数(VBAであれワークシートの関数でアレ)で曜日の数字を計算する事を,「曜日を表示する」と勘違いしている人を見かけます。
WEEKDAY関数で1,2,3を計算したセルに曜日を表示する書式を付けると,たまたま正しい曜日の文字を表示してしまうのが勘違いの主な原因ですが,WEEKDAY関数はあくまでも曜日に対応する1,2,3…の数字を計算するだけのものです。

「正しい」使用例: =CHOOSE(WEEKDAY(TODAY()),"月","月","火","水","木","金","金")
正しい使用例: セルには年/月/日の日付をそのままにしておき,書式で aaa や aaaa の表示をつける
正しい使用例: =TEXT(TODAY(),"aaa") などで,実文字としての曜日の文字を計算させる
    • good
    • 2

どうしてもWeekday関数を使いたければ



Sub Sample01()
If IsDate(Range("A1").Value) Then
Select Case Weekday(Range("A1").Value)
Case 1
Range("B1").Value = "日曜日"
Case 2
Range("B1").Value = "月曜日"
Case 3
Range("B1").Value = "火曜日"
Case 4
Range("B1").Value = "水曜日"
Case 5
Range("B1").Value = "木曜日"
Case 6
Range("B1").Value = "金曜日"
Case 7
Range("B1").Value = "土曜日"
End Select
End If
End Sub

Sub Sample02()
Dim myAr()
myAr = Array("日", "月", "火", "水", "木", "金", "土")
If IsDate(Range("A1").Value) Then
Range("B1").Value = myAr(Weekday(Range("A1").Value) - 1)
End If
End Sub

のようになりますね。
ご覧になってお分かりのようにWeekday関数は1から7までの数値を返しますので、その数値を日本語に変換してあげる手間がかかります。その点、
Range("B1").Value = Format(Range("A1").Value, "aaa")とした方が、日本語変換はFormatで簡単にできちゃいますから楽ですよね。
    • good
    • 1

まずは、VBAを使わずに、B1に


=A1
と入力して、B1の表示形式を aaa にしてみてください。

それで何が起きるのかが判れば、#1の回答の意味も少しは解ると思います。
    • good
    • 1

Format(Range("A1").Value, "aaa")

この回答への補足

Weekdayという関数(とういうんですか?)は使わなくてもいいんでしょうか?

補足日時:2010/06/02 16:19
    • good
    • 0

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