人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

『教えてエクセルマクロ。2008/1/11 18:20を、年/月/日と時:分の2つに分割したい』

?報酬?
最良回答には各100Pほど予定しております。

?内容?
Range("A1")に、
2008/1/11 18:20
みたいに年月日と時刻が書かれているとします。
こいつを、
Range("A2")=2008/1/11
Range("A3")=18:20
のように分けたいんですが、そうするにはどう書けばいいんでしょう?

?条件?
・分けたデータが日時のデータとして認識されるようにしたい
・できるだけ短く簡素化されたコードで。(可能なら一行で)

チカラ貸して下さい!ヨロシクオネガイシマス!

●質問者: gsjapan
●カテゴリ:コンピュータ 学習・教育
✍キーワード:A1 A3 エクセル オネガイ コード
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● cx20
●100ポイント

VBA からでしたら Format() 関数を使うことで、日付型→文字列への変換が可能です。

Option Explicit

Sub DateToStringTest()
 Dim strDate
 strDate = Range("A1")  ' 2008/1/11 18:20
 Range("A2") = Format(strDate, "yyyy/m/d")  ' 2008/1/11 18:20 -> 2008/1/11
 Range("A3") = Format(strDate, "hh:mm")  ' 2008/1/11 18:20 -> 18:20
End Sub

<参考情報>

■ EXCEL VBA セルの操作 書式

http://www.geocities.jp/cbc_vbnet/function/date.html

◎質問者からの返答

なるほどFormatはこういった使い方もあるんですね。

早速活用してみます。

参考になるサイトも教えて頂き感謝します。

アリガトウございましたぁ!


2 ● SALINGER
●100ポイント

表示を変えるだけならば

A2セルの数式を =A1 、A3セルの数式を =A1 といれて

A2のセルの書式設定を yyyy/m/d

A3のセルの書式設定を h:mm

にすればできます。


完全に値を切り分けるということになればマクロで

DateValue()とTimeValueを使って

 Range("A2").Value = DateValue(Range("A1").Value)
 Range("A3").Value = TimeValue(Range("A1").Value)
 Range("A3").NumberFormatLocal = "h:mm"
◎質問者からの返答

なるほど。。

DateValueとTimeValueってのは初めて知りました。

カンペキな御回答2つ頂けましたので、これにて質問終了とさせて頂きます。

ありがとうございました。次回もヨロシクです♪

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ