- ベストアンサー
「7月4日」や「07月04日」ではなく「 7月 4日」と表示させたい。(エクセル表示)
こんばんはよろしくお願いします。 エクセル2000で、日付が入力されているセルの表示を 7月4日の場合、「 7月 4日」と表示させるにはどうしたらよいのでしょうか? (つまり十の位に半角スペースが入ってる状態です。) 同様に通し番号も9までの数字も「1」ではなく「 1」と表示させるにはどうすればよいのでしょうか? いつもありがとうございます。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
#3ですが、ちょっと訂正です。 後半の「月日均等幅書式」の方コードを1ヶ所(12行目)訂正しましたので、こちらを使ってください。 Sub 和暦日付均等幅書式() Dim Rng As Range Dim Syoshiki As String Dim Hani On Error Resume Next Set Hani = Application.InputBox(Prompt:=vbLf & "日付け入力範囲を" & _ "選択して、[OK]を押してください。", Type:=8) If Err.Number > 0 Then Exit Sub For Each Rng In Hani Syoshiki = "" If IsDate(Rng.Value) Then If Val(Format(Rng.Value, "e")) < 10 Then Syoshiki = "ggg e年" Else Syoshiki = "ggge年" End If If Month(Rng.Value) < 10 Then Syoshiki = Syoshiki & " m月" Else Syoshiki = Syoshiki & "m月" End If If Day(Rng.Value) < 10 Then Syoshiki = Syoshiki & " d日" Else Syoshiki = Syoshiki & "d日" End If Rng.NumberFormatLocal = Syoshiki Rng.Font.Name = "MS ゴシック" End If Next Rng End Sub
その他の回答 (4)
- ryo-1
- ベストアンサー率33% (3/9)
参考にならないかも知れませんが、私は以下の方法を使用します。 ・実際の日付が入っているセルは非表示。 ・別セルに以下の関数にて表示。(例はセルA1に日付が入っている場合です。) =IF(AND(MONTH(A1)<10,DAY(A1)<10),TEXT(A1," m/ d"),IF(MONTH(A1)<10,TEXT(A1," m/dd"),IF(DAY(A1)<10,TEXT(A1,"mm/ d"),TEXT(A1,"mm/dd")))) 一応それっぽく見えます。
お礼
ありがとうございます。 関数慣れしてると、そのような式も思い浮かぶのですね。(自分もそうなりたい) =IF(AND(MONTH(A1)<10,DAY(A1)<10),TEXT(A1," m月 d日"),IF(MONTH(A1)<10,TEXT(A1," m月dd日"),IF(DAY(A1)<10,TEXT(A1,"mm月 d日"),TEXT(A1,"mm月dd日")))) と変えて利用できます。 お礼が遅くなりスミマセン。^^
- ja7awu
- ベストアンサー率62% (292/464)
日付形式を保ち、自動的に表示幅を揃えるには、VBAで処理することになると思います。 もし、それで宜しかったら、次の方法でテストしてみてください。 質問では、月日だけの表示になっていますが、和暦年月日と両方作っておきますので 好きな方を使ってください。(さらに必要あれば、コード上で書式を変えてください。) 1.Alt + F11 で VBE(Visual Basic Editor)を開きます。 2.VBE のメニューから[挿入] -->[標準モジュール] を指定します。 3.モジュールウィンドウに下記コードをコピーして貼り付けます。 4.Alt + Q (または、右上隅の×)でウィンドウを閉じ、シートに戻ります。 5.メニューから[ツール]-->[マクロ]-->[セキュリティ]で「セキュリティレベル」を 「中」にして[OK]します。 6.実行するときは、Alt + F8 (メニューから[ツール]-->[マクロ]-->[マクロ])で 例えば「和暦日付均等幅書式」を指定し、[実行]ボタンを押します。 書式変換する範囲を聞いてきますので、選択状態にして[OK]します。 これで如何でしょう。 一括変換の他に、入力の都度、変換する方法もあります。 Sub 月日均等幅書式() Dim Rng As Range Dim Syoshiki As String Dim Hani On Error Resume Next Set Hani = Application.InputBox(Prompt:=vbLf & "日付け入力範囲を" & _ "選択して、[OK]を押してください。", Type:=8) If Err.Number > 0 Then Exit Sub For Each Rng In Hani Syoshiki = "" If IsDate(Rng.Value) Then If Month(Rng.Value) < 10 Then Syoshiki = Syoshiki & " m月" Else Syoshiki = Syoshiki & "m月" End If If Day(Rng.Value) < 10 Then Syoshiki = Syoshiki & " d日" Else Syoshiki = Syoshiki & "d日" End If Rng.NumberFormatLocal = Syoshiki Rng.Font.Name = "MS ゴシック" End If Next Rng End Sub Sub 和暦日付均等幅書式() Dim Rng As Range Dim Syoshiki As String Dim Hani On Error Resume Next Set Hani = Application.InputBox(Prompt:=vbLf & "日付け入力範囲を" & _ "選択して、[OK]を押してください。", Type:=8) If Err.Number > 0 Then Exit Sub For Each Rng In Hani Syoshiki = "" If IsDate(Rng.Value) Then If Year(Rng.Value) < 10 Then Syoshiki = "ggg e""年""" Else Syoshiki = "ggge""年""" End If If Month(Rng.Value) < 10 Then Syoshiki = Syoshiki & " m月" Else Syoshiki = Syoshiki & "m月" End If If Day(Rng.Value) < 10 Then Syoshiki = Syoshiki & " d日" Else Syoshiki = Syoshiki & "d日" End If Rng.NumberFormatLocal = Syoshiki Rng.Font.Name = "MS ゴシック" End If Next Rng End Sub
- AE100kai
- ベストアンサー率26% (54/201)
その場合は、そのセルの書式を文字列にしてやれば、数字としてでは無く、文字として認識してくれるので数字が全角、半角問わずスペースも入力出来ます。
補足
やはり、文字列にして入力するしかないのでしょうか 。
- matrix4
- ベストアンサー率16% (118/704)
A1 に 1月19日といれたら、書式設定でユーザー定義 1月(半角sp)19日 で 1月 19日 と出ます。 同様に 1なら ユーザー定義 半角sp で 半角sp1 になります。
補足
「 7月 4日」「 7月12日」「12月 4日」というように 十の位の無い月と日だけ半角スペースを前に入れたいのですが 。
お礼
^^すごいですね。ありがとうございます。頂戴します。