[[20190625204008]] 『日付と文字の間にスペースを入れたい』(はじめて) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『日付と文字の間にスペースを入れたい』(はじめて)

はじめまして
2019年6月29日(土)◯◯ (○の中には漢字が入ります)を
2019年6月29日(土) ◯◯ みたいに日付と文字の間にスペースを入れたいのですがどうすればいいでしょうか
よろしくおねがいします

< 使用 Excel:Excel2010、使用 OS:Windows7 >


失礼しました
2019年6月29日(土) ◯◯ です
(はじめて) 2019/06/25(火) 20:48

 日付と他の文字は一緒に入れられません。
 入れたら、それはもう日付とは認識されません。
 せいぜい表示形式で、

 yyyy年m月d日(aaa) ◯◯
 (エクセルに勝手に、yyyy"年"m"月"d"日"(aaa) ◯◯ と変換されるけど)

 ってやるだけです。
 実際に入力されているのは、日付だけ。

 単純に文字で、書くか、
 2019年6月29日(土) ◯◯

 データとして活用したいのなら、素直に2セル使った方が良いと思うけどね。
(BJ) 2019/06/25(火) 22:43

 >失礼しました 
 >2019年6月29日(土) ◯◯ です

 ↑ は最初のと何が違うんですかね?

 要するに・・・
 2019年6月29日(土)◯◯ という文字列が既に大量にある。※日付、○○の漢字はいろいろ
 ○○の前に一気にスペースを入れるにはどうしたらいいか、ということ?

 範囲を選択して Ctrl+Hキー(置換のショートカットキー)

 検索する文字列:)
 置換後の文字列:)   ← ) のあとにスペースを入れる!
 
「すべて置換」をクリック
 ○○ の部分に ) はない、という前提で

 参考まで
(笑) 2019/06/26(水) 11:53

Sub main()
    '対象セルを選択した状態で実施
    Dim c As Range, r As Range, k As String, d As String, i As Long
    For Each c In Selection
        Set r = c
        k = StrConv(r.Value, vbNarrow)
        For i = 1 To Len(k)
            If IsDate(Left(k, i)) Then
                d = Left(k, i) & Format(DateValue(Left(k, i)), "(aaa)")
                If InStr(k, d) > 0 Then
                    r.Value = d & Space(1) & Split(k, d)(1)
                End If
            End If
        Next i
    Next c
End Sub
(mm) 2019/06/26(水) 17:22

ありがとうございますためしてみます
(はじめて) 2019/06/26(水) 19:18

mmさんのコードで質問です
A列を対象にしたいのですが
    Columns("A:A").Select
を
    Columns("A:A").Select
    Dim c As Range, r As Range, k As String, d As String, i As Long
    For Each c In Selection
        Set r = c
        k = StrConv(r.Value, vbNarrow)
        For i = 1 To Len(k)
            If IsDate(Left(k, i)) Then
                d = Left(k, i) & Format(DateValue(Left(k, i)), "(aaa)")
                If InStr(k, d) > 0 Then
                    r.Value = d & Space(1) & Split(k, d)(1)
                End If
            End If
        Next i
    Next c
End Sub
でも
    Dim c As Range, r As Range, k As String, d As String, i As Long
    Columns("A:A").Select
    For Each c In Selection
        Set r = c
        k = StrConv(r.Value, vbNarrow)
        For i = 1 To Len(k)
            If IsDate(Left(k, i)) Then
                d = Left(k, i) & Format(DateValue(Left(k, i)), "(aaa)")
                If InStr(k, d) > 0 Then
                    r.Value = d & Space(1) & Split(k, d)(1)
                End If
            End If
        Next i
    Next c
End Sub
でもうまくいきませんでした
どうすればいいでしょうか

(はじめて) 2019/06/26(水) 20:55


A列セル表示形式=標準で、
A列にベタ打ちで、

2019年6月29日(土)◯◯

といれてもだめですか?
(mm) 2019/06/27(木) 08:47


よくなりました
ありがとうございます

(はじめて) 2019/06/27(木) 19:42


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.