エクセル技道場 RSSを登録する

Excelの効率的な操作の技、条件付き書式・入力規則などの機能をさらに便利に使いこなす技、組み合わせて使う関数の技などを配信。

最新号をメルマガでお届けします    
登録 解除

規約に同意して

登録した方には、まぐまぐの公式メルマガ(無料)をお届けします。
2003/09/30

【エクセル技道場】No.356 日付の桁を揃える

この記事を取り寄せる

===[ ▼PR ]=========================================================

☆゜♪.:*:'゜『ディズニーの英語システム』トリプルプレゼント♪.:*:'゜☆
0才〜6才のお子さまをお持ちの方へ『英語の絵本』、『CDつきABC
ポスター』『おためしビデオまたはDVD』をプレゼント!
【期間限定2003年10月31日まで】
 http://211.10.20.135/a/a.cgi?k04530m01057 

========================================================[ ▲PR ]====

■【エクセル技道場】No.356 2003/ 9/30 発行部数:14,968 不定期
■ http://www2.odn.ne.jp/excel/ まぐまぐID: 31665

◇日付の桁を揃える

【問題】

 年月日を入力した時に前ゼロをスペースにし、桁を揃えたいのですがうまく出来ません。

平成9年9月14日
昭和60年10月4日

のようなデータを以下のように、月と日の位置をあわせたいのですが、どうすればよいでしょうか?

平成 9年 9月14日
昭和60年10月 4日

==== [ ▼PR ] ========================================================

◎ ふくびき.com ◎現金100万円が毎月当たる!今だけさらに豪華賞品!
   ふくびき.comに無料会員登録をすると、こんな特典があなたに!
   ≫≫ 新規登録の方の中から抽選で豪華賞品が当たる!! ≪≪
 ≫≫ 会員の方に抽選で100万円! 福引き券付きメールもGet! ≪≪
 あなたも今すぐ登録!→ http://211.10.20.135/a/a.cgi?k70080Bm01057 

======================================================== [ ▲PR ] ====

【回答】

○関数で桁を揃える。

 A列にデータが入っているとします。
 B列のフォントを MS ゴシック などの等幅フォントにします。

1.B列を選択
2.Ctrl+1 (メニュー[書式]-[セル])
3.[フォント]タブで MS ゴシック を選択
4.[OK]ボタンをクリック

 セルB1に以下の数式を入力します。

=TEXT(A1,"ggg")&
RIGHT(TEXT(A1," e年"),3)&
TEXT(MONTH(A1),"??月")&
TEXT(DAY(A1),"??日") 

○そのセルの表示形式を変更して年月日の桁を揃える。

1.セルを選択
2.Ctrl+1 (メニュー[書式]-[セル])
3.[表示形式]タブの[分類]を[ユーザー定義]に
4.[種類]に

年1桁、月1桁、日1桁    →    ggg_1e"年"_1m"月"_1d"日"
年1桁、月1桁、日2桁    →    ggg_1e"年"_1m"月"d"日"
年1桁、月2桁、日1桁    →    ggg_1e"年"m"月"_1d"日"
年1桁、月2桁、日2桁    →    ggg_1e"年"m"月"d"日"
年2桁、月1桁、日1桁    →    ggge"年"_1m"月"_1d"日"
年2桁、月1桁、日2桁    →    ggge"年"_1m"月"d"日"
年2桁、月2桁、日1桁    →    ggge"年"m"月"_1d"日"
年2桁、月2桁、日2桁    →    ggge"年"m"月"d"日"

を入力

5.[OK]ボタンをクリック

○マクロでA列に日付が入力されると年月日の桁を揃える。

 シートタブ上で右クリック-[コードの表示]で表示されるコードウィンドウに下記マクロを入力。

Private Sub Worksheet_Change(ByVal Target As Range)
 Dim tmp As Variant
  
 With Target
  If .Column <> 1 Then Exit Sub 'A列のみを対象
  tmp = .Value
  If IsDate(tmp) Then
   .NumberFormatLocal = "ggg" & _
    IIf(Format(tmp, "e") > 9, "e年", "_0e年") & _
    IIf(Month(tmp) > 9, "m月", "_1m月") & _
    IIf(Day(tmp) > 9, "d日", "_1d日")
  End If
 End With
End Sub

○マクロで選択した範囲の日付の年月日の桁を揃える。

Sub test()
 Dim c As Range
 Dim tmp As Variant
 
 Application.ScreenUpdating = False
  For Each c In Intersect(Selection, ActiveSheet.UsedRange)
   tmp = c.Value
   If IsDate(tmp) Then
    c.NumberFormatLocal = "ggg" & _
     IIf(Format(tmp, "e") > 9, "e年", "_1e年") & _
     IIf(Month(tmp) > 9, "m月", "_1m月") & _
     IIf(Day(tmp) > 9, "d日", "_1d日")
   End If
  Next
 Application.ScreenUpdating = True
End Sub

1.上記マクロの Sub から End Sub までを選択してCtrl+C (コピー)
2.Alt+F11(メニュー[ツール]-[マクロ]-[VBE])
→VBE(Visual Basic Editor)が開く
3.プロジェクトエクスプローラで、VBAProject(<当該ブック名>)を選択
4.メニュー[挿入]-[標準モジュール]
5.Ctrl+V (貼り付け)
6.Alt+F4(メニュー[ファイル]-[終了してMicrosoft Excelへ戻る])
7.桁を揃えたいセル範囲を選択
8.Alt+F8(メニュー[ツール]-[マクロ]-[マクロ])
9.実行したいマクロ名(この場合、test)を選択
10.[実行]ボタンをクリック

○○ あとがき ○○

 子供産まれました!

■■■■■掲載内容に起因する問題の責は負いかねます。
■本誌の転載等は非商用利用に限ります。出典明記でお願いします。
■解除■まぐまぐ: http://www.mag2.com/m/0000031665.htm
■発行者:janma
■■■■■【エクセル技道場】 http://www2.odn.ne.jp/excel/

この記事を取り寄せる
最新号をメルマガでお届け
登録 解除

規約に同意して

登録した方には、まぐまぐの公式メルマガ(無料)をお届けします。

最近の記事

上へ戻る