Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


10580 / 13646 ツリー ←次へ | 前へ→

【20992】日付の変換について教えてください。 sa 05/1/6(木) 9:16 質問[未読]
【20995】Re:日付の変換について教えてください。 Jaka 05/1/6(木) 9:42 回答[未読]
【20996】Re:日付の変換について教えてください。 sa 05/1/6(木) 10:13 回答[未読]
【20997】Re:日付の変換について教えてください。 こうちゃん 05/1/6(木) 10:38 回答[未読]
【21000】Re:日付の変換について教えてください。 Jaka 05/1/6(木) 10:55 発言[未読]
【21015】Re:日付の変換について教えてください。 こうちゃん 05/1/6(木) 21:10 発言[未読]
【20999】Re:日付の変換について教えてください。 Jaka 05/1/6(木) 10:51 回答[未読]
【21001】Re:日付の変換について教えてください。 sa 05/1/6(木) 11:24 お礼[未読]

【20992】日付の変換について教えてください。
質問  sa  - 05/1/6(木) 9:16 -

引用なし
パスワード
   "1/1"を"0101"に変換したいのですが、
Month関数Date関数を使ってやると、
"1/1"は"11"にへんかんされてしまいます。
何かよい方法があったら教えてください。

【20995】Re:日付の変換について教えてください。
回答  Jaka  - 05/1/6(木) 9:42 -

引用なし
パスワード
   こんにちは。

>"1/1"
これは、セルに対してなのか、変数に対してなのか全く解ってませけど..。
こんな感じでしょうか?

Dim dada As Date
dada = "1/1"
MsgBox Format(dada, "mmdd")

【20996】Re:日付の変換について教えてください。
回答  sa  - 05/1/6(木) 10:13 -

引用なし
パスワード
   Jaka さん回答ありがとうございます。
初心者なのでうまく説明できませんが、
セルに1/1とあるのを、0101に変換して変数に入れたい という感じです…
わかりづらくてすみません。。

Jakaさんから教えていただいたものでちょっとやってみたのですが、

変数:Date1(String型)  ← 1/1がを入れる
  :Date2(Integer型)  ← 変換後の0101を入れる

 とあり、

  '日付をMMDDに変換。
  Date2= Month(Date1) & Day(Date1)
  
  '戻り値を返す
  DateChange = Format(Date2, "MMDD")

 というような感じでやってみたのですが、
 "0110" に変換されてしまいました。
 変数の型などが問題でしょうか?

【20997】Re:日付の変換について教えてください。
回答  こうちゃん  - 05/1/6(木) 10:38 -

引用なし
パスワード
   saさん、Jakaさん、こんにちは

元データをそのままFormatしましょ。
こんな感じ

Sub test()
  
  MsgBox DateChange("1/1")

End Sub

Function DateChange(Date1 As String) As String

  DateChange = Format(Date1, "MMDD")

End Function

【20999】Re:日付の変換について教えてください。
回答  Jaka  - 05/1/6(木) 10:51 -

引用なし
パスワード
   >セルに1/1とあるのを、0101に変換して変数に入れたい という感じです…
なら、↓で大丈夫と思いますが、表示形式が文字列だとまた変わります。
MsgBox Format(Range("E1").Value, "mmdd")

>変数:Date1(String型)  ← 1/1がを入れる
>  :Date2(Integer型)  ← 変換後の0101を入れる
なら、Date2は、文字列にしないと数値型だと頭の0はなくなりますよ。

これで解るなぁ?

Dim Date1 As String, Date2 As String, Date3 As Integer
Date1 = "1/1"  '← 文字としての1/1が入ります。
Date2 = Format(CDate(Date1), "mmdd")
           '↑ 文字列を日付に変換
MsgBox Date2
Date3 = Format(CDate(Date1), "mmdd")
MsgBox Date3  '← 0101が数値に変換されて、101になる。

【21000】Re:日付の変換について教えてください。
発言  Jaka  - 05/1/6(木) 10:55 -

引用なし
パスワード
   あらっ。

こうちゃんさん こんにちは。
お久しぶりです。
更新してなかったので、気づきませんでした。

【21001】Re:日付の変換について教えてください。
お礼  sa  - 05/1/6(木) 11:24 -

引用なし
パスワード
   Jakaさん、こうちゃんさんありがとうございました。
Date2を文字列に変えて、そのままFormatすることで
うまく変換できるようになりました。
本当にありがとうございました!

 

【21015】Re:日付の変換について教えてください。
発言  こうちゃん  - 05/1/6(木) 21:10 -

引用なし
パスワード
   おひさしぶりですっ。
たまに覗いてはいたんですが、時間がないので
回答はなかなかできません。
たまに出没しますので、邪魔にしないでね。

10580 / 13646 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free