こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

-広告-

解決済みの質問

Excel 日付変換をマクロで

8月1日(土)=DATE(2015,VALUE(LEFT(C23,1)),VALUE(MID(C23,3,1)))
8月10日(土)=DATE(2015,VALUE(LEFT(C24,1)),VALUE(MID(C24,3,2)))
10月1日(火)=DATE(2015,VALUE(LEFT(C25,2)),VALUE(MID(C25,4,1)))
10月11日(火)=DATE(2015,VALUE(LEFT(C26,2)),VALUE(MID(C26,4,2)))

いつもは右の関数で
2015/8/1
2015/8/10
2015/10/1
2015/10/11に変換しています。

マクロの方が簡単かは別としてマクロを組みたいです。
日付が入力されてるセルが毎回違うので、
変換したい所を選択してからマクロ実行をしたいです。

投稿日時 - 2016-01-27 11:02:00

QNo.9117795

困ってます

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

こんにちは
No1~3です。
選択した範囲全てなら、
Sub test2()
  Dim s As Range
  For Each s In Selection
    On Error Resume Next
    s = "2015/" & Format(Split(s, "(")(0), "m/d")
    s.NumberFormatLocal = "yyyy/m/d"
    On Error GoTo 0
  Next
End Sub
で。
色々なエラーを想定して適宜エラー処理を入れて下さい。

投稿日時 - 2016-01-27 12:16:09

お礼

ありがとうございます。
完璧に出来ました。

投稿日時 - 2016-01-27 12:45:36

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

-広告-
-広告-

回答(4)

ANo.3

こんにちは
No1、No2 です。
2015年決めうちなら、
Sub test1()
  Dim s As Range
  Set s = Selection
  On Error Resume Next
  s = "2015/" & Format(Split(s, "(")(0), "m/d")
  On Error GoTo 0
End Sub
とか。

投稿日時 - 2016-01-27 11:48:17

お礼

ありがとうございます。

投稿日時 - 2016-01-27 12:45:19

ANo.2

こんにちは
No1です。
どうしてもマクロなら、
Sub test()
  Selection.EntireColumn.Select
  Selection.TextToColumns Destination:=Selection.Cells(1, 1), DataType:=xlDelimited, _
    TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
    Semicolon:=False, Comma:=False, Space:=False, Other:=True, OtherChar _
    :="(", FieldInfo:=Array(Array(1, 1), Array(2, 9)), TrailingMinusNumbers:=True
  Selection.NumberFormatLocal = "yyyy/m/d"
End Sub
こんな感じで出来ます。

投稿日時 - 2016-01-27 11:30:19

補足

このコードでも出来ましたが列全部を選択してまして
A1:A5というように選択した範囲だけ出来ますか。

投稿日時 - 2016-01-27 11:49:22

お礼

ありがとうございます。

投稿日時 - 2016-01-27 11:48:21

ANo.1

こんにちは

同じ列に元のデータが入っているなら、その列を数式をセットする列にコピーし
リボンの「データ」タブの「区切り位置」で、その他「(」で区切って、2列目は
削除し、日付になった列の書式を「yyyy/mm/dd」にしてはどうですか?

投稿日時 - 2016-01-27 11:25:39

お礼

ありがとうございます。

投稿日時 - 2016-01-27 11:46:06

-広告-
-広告-

あなたにオススメの質問

-広告-
-広告-