重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

下記コードについて、
 ss = cl / Range("C5") / Range("B5") のところで
日付変換し
Cells(rw, 7).Value = ss に日付を代入したいですが
ssが日付変換できません。

因みにclには整数が入ります。
   Range("C5")=4 月
   Range("B5")=2020 年 が入っています。

日付変換して日付代入したいです。
詳しい人いらっしゃいましたらご教示下さい。
お願いします。

For rw = 8 To rMax
cl = data(rw, 0)
If cl > 0 Then
cl = cl - 8
 ss = cl / Range("C5") / Range("B5")
Cells(rw, 7).Value = ss
While Cells(1, cl).Left <= data(rw, 1)
cl = cl + 1
Wend
cl = cl - 9
 ss = cl / Range("C5") / Range("B5")
Cells(rw, 8).Value = ss
End If
Next rw
End Sub

A 回答 (2件)

こんばんは!



コードの詳細は見ていませんが・・・
シリアル値を求めたいのですかね?

お示しのコードは d/m/yyyy 形式のようですが、yyyy/m/d とするのが一般的だと思います。

ss = DateSerial(Range("B5"), Range("C5"), cl)

のようにしたらどうなりますか?

※ 余計なお世話かもしれませんが、変数を「ss」のようにしていらっしゃいますが、
h・m・s などは時・分・秒 として何も宣言せずに使えますので
極力使用しない方がよいと思います。(予約語的な変数)

とりあえずはこの程度で・・・m(_ _)m
    • good
    • 0
この回答へのお礼

回答ありがとうございます!
上記コードにて表示することができました!
ありがとうございました!

お礼日時:2020/04/04 09:04

こんにちは



既に回答はでていますので、質問者様の(多分)勘違いについて。

>  Range("C5")=4 月
>  Range("B5")=2020 年 が入っています。
それぞれ、4、2020という数値が入力されているのか、"4月"、"2020年"という文字列が入力されているのか不明ですが、前者の数値であるものと仮定します。
(文字列の場合はまた話が別になります)

> ss = cl / Range("C5") / Range("B5")
日付の文字列を作成しているつもりかも知れませんが、エクセルは
  ss = cl / 4 / 2020
と解釈するので、
  ss = cl ÷ 8080
の計算を行うことになるので、日付とは関係のない結果になると推測されます。

もしも、"5/4/2020"のような日付文字列を得たいのであれば、
  ss = cl & "/" & Range("C5") & "/" & Range("B5")
のように文字列連結にする必要があります。
とは言え、既に指摘にある通り、日付の文字列は"2020/4/5"の形式が一般的といえます。
    • good
    • 0
この回答へのお礼

回答ありがとうございます!
なるほど。。
そもそもそういう事が分かっていなかったので参考になります!
詳細説明ありがとうございます!

お礼日時:2020/04/04 09:05

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