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

エクセルで年月日の桁をそろえたいのですがうまく出来ません。
mやdを1つ増やすとかすると、そろったとしても03月09日と
前にゼロが入ってしまいます。
関数で、《もし一桁ならば前にスペースを》では別の列になってしまうので困るので
マクロしかないのでしたらマクロの方法を知りたいのですが・・・
どなたかよい方法を教えて下さい。

●質問者: hanasitemiru
●カテゴリ:コンピュータ
✍キーワード:3月 エクセル ゼロ マクロ 関数
○ 状態 :終了
└ 回答数 : 6/6件

▽最新の回答へ

1 ● tyousann
●0ポイント

ご参考に

http://www.eurus.dti.ne.jp/~yoneyama/Excel/hiduke.htm

http://kokoro.kir.jp/excel/hyouji_day_ouyou.html

http://allabout.co.jp/gm/gc/3155/

◎質問者からの返答

すみませんが見つけることが出来ませんでした。


2 ● SALINGER
●0ポイント

セルの表示形式をユーザー定義を使って揃えることができますよ。


具体的には、セルの書式設定から表示形式タブ、分類をユーザー定義、種類のところに次のように入れます。

[$-411]ggg_0e"年"_0m"月"_0d"日";@

「_0」を入れることでスペースが入ります。

http://www.eurus.dti.ne.jp/~yoneyama/Excel/vba/vba_hiduke.html

◎質問者からの返答

教えて頂いたサイトのマクロを入れてみましたが、やり方が悪いのでしょうか

1桁日付では前にスペースが入ります

2桁日付でも前にスペースが入ってしまいます。

2桁日付では前にスペースが入らないものを望んでいます。


3 ● HALSPECIAL
●0ポイント

表示形式のユーザー定義で、次のようにしたらいかがでしょう。

表示 表示形式(ユーザ定義)
9月 1日 _*m"月"_*d"日"
◎質問者からの返答

すみませんがうまく使えませんでした。


4 ● SALINGER
●40ポイント ベストアンサー

すいません。表示形式だけではうまくいかなかったようですね。

http://www.eurus.dti.ne.jp/~yoneyama/Excel/vba/vba_hiduke.html


改めて見ると、こちらのコードには1ヶ所間違いがありますね。

正しくはこうです。

If Len(Format(c.Value, "d")) < 10 Then

If Format(c.Value, "d") < 10 Then
◎質問者からの返答

どうもありがとうございました。

この行が効いていない事だけは見えましたが

私の力では、とても修正にまでは至りませんでした。

おかげさまで解決致しました。


5 ● Mook
●40ポイント

SALINGER さんの提示されたリンクにあるマクロはこちら(Vista + Excel2007)では正常に動作しました。

動作が違うとなるとバージョン等が気になりますが、OSとEXCELのバージョンは何を使用していますか。


また日付の入力欄はA1:A50の範囲に限定されています。

今回変化はしているようなのでその範囲で試しているか、範囲を変更してはいると思いますが、その点は大丈夫でしょうか。


一応下記は、範囲を削除した例です。

必要に応じて元の形のように範囲を使用してみてください。


念のため日付と月の判定を日付関数に変更してみました

(シートタブの右クリック「コードの表示」で表示されるウインドウに下記をコピー)。

Private Sub Worksheet_Change(ByVal Target As Range)
 Dim fmt As String
 For Each c In Target
 If IsDate(c.Value) Then
 If Len(Format(c.Value, "e")) = 1 Then
 fmt = "[$-411]ggg_0e年"
 Else
 fmt = "[$-411]ggge年"
 End If
 If Month(c.Value) < 10 Then
 fmt = fmt & "_0m月"
 Else
 fmt = fmt & "m月"
 End If
 If Day(c.Value) < 10 Then
 fmt = fmt & "_0d日"
 Else
 fmt = fmt & "d日"
 End If
 c.NumberFormatLocal = fmt & ";@"
 End If
 Next c
End Sub

コメントが有効であると補足が簡単ですので、有効にされるとよいと思います。

◎質問者からの返答

すみません。

バージョンの違いで動作しなかったということに気が付きませんでした。

2003を使用しています。

1桁か或いは2桁かと見合ったfmt変数を追加していく方法ありがとうございました。

おかげさまで解決致しました。


1-5件表示/6件
4.前の5件|次5件6.
関連質問


●質問をもっと探す●



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