Excel VBA質問箱 IV

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

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


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

【57182】[ ' ]で文字列表記しているセルの書式変更 taka 08/7/30(水) 22:30 質問[未読]
【57184】Re:[ ' ]で文字列表記しているセルの書式変... ponpon 08/7/30(水) 22:45 発言[未読]
【57185】Re:[ ' ]で文字列表記しているセルの書式変... kanabun 08/7/30(水) 22:49 発言[未読]
【57187】Re:[ ' ]で文字列表記しているセルの書式変... kanabun 08/7/30(水) 23:04 回答[未読]
【57233】解決しました taka 08/8/2(土) 12:01 お礼[未読]

【57182】[ ' ]で文字列表記しているセルの書式変更
質問  taka  - 08/7/30(水) 22:30 -

引用なし
パスワード
   日付を集計するExcelマクロを作成しています。
分からない事があるので、質問させて頂きます。

◇問題
日付のフォーマットを、yyyy/mm/ddに統一したい。
日付の先頭に'を記入し(例:'07/05)文字列表示
しているセルがあり、yyyy/mm/ddのフォーマットに
変更できない。

◇ソース
Sub test()
  Cells(1, 1).NumberFormatLocal = "yyyy/m/d;@"
  ' A1には、'07/05と入力されている
  ' このマクロを実行しても、年度が表示されない
  ’A1の表示をyyyy/mm/ddにしたいが、方法が分からない
End Sub

以上、よろしくお願いします^^

【57184】Re:[ ' ]で文字列表記しているセルの書式...
発言  ponpon  - 08/7/30(水) 22:45 -

引用なし
パスワード
   こんなのでは、だめですか?

Sub test()
  With Cells(1, 1)
    .Value = Year(Date) & Replace(Cells(1, 1), "'", "/")
    .NumberFormatLocal = "yyyy/mm/dd"
  End With
End Sub

【57185】Re:[ ' ]で文字列表記しているセルの書式...
発言  kanabun  - 08/7/30(水) 22:49 -

引用なし
パスワード
   ▼taka さん:
失礼します

>日付の先頭に'を記入し(例:'07/05)文字列表示
>しているセルがあり、yyyy/mm/ddのフォーマットに
>変更できない。

例:'07/05
は 2007/05/01 になればいいということですか?

If セル.PrefixCharacter = "'" Then
  '処理
End If
のような感じでは?

【57187】Re:[ ' ]で文字列表記しているセルの書式...
回答  kanabun  - 08/7/30(水) 23:04 -

引用なし
パスワード
   '07/05
 → 2007/05/01 と変えたいとすると、さっきの.PrefixCharacter を
使った例です。

Sub Try1()
 Dim c As Range
 With [A1:A15]  '<------- 範囲は適当デス
   .NumberFormatLocal = "yyyy/mm/dd;@"
   For Each c In .Cells
    With c
      If .PrefixCharacter = "'" Then
        .Value = "20" & .Text & "/01"
      End If
    End With
   Next
 End With
End Sub

【57233】解決しました
お礼  taka  - 08/8/2(土) 12:01 -

引用なし
パスワード
   >ponpon
Replaceで置換して、文字列解除できました

>kanabun
PrefixCharacter()
↑便利な関数ですね
活用しました

ありがとうございました^^

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