• 締切済み

続 エクセルの年号表示について

エクセルの年号表示にスペースを入れる方法として、VBAによる方法を教えていただきましたが、締め切った後で表示された為、再度お尋ねいたします。 試してみたところ、大変実用的でした。列を変えるには、Aを変えればいい事が解りましたが、複数列に対応させる為には、どうすればいいのでしょうか? 今度は気長に待ちますので、よろしくお願いいたします。

みんなの回答

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.4

こんにちは! 前回投稿した者です。 他の方々から的確な回答はでていますが、 仮にA1~B10セルの範囲だけで反応させたい場合は 前回のコードの >If Intersect(Target, Range("A:A")) Is Nothing Or Target.Count > 1 Then Exit Sub の行を >If Intersect(Target, Range("A1:B10")) Is Nothing Or Target.Count > 1 Then Exit Sub のように実状に合わせて範囲を指定してみてください。 ※ A1~B10の範囲とD1~E10の範囲のように範囲が飛んでいる場合は >If Intersect(Target, Range("A1:B10,D1:E10")) Is Nothing Or Target.Count > 1 Then Exit Sub といった感じにします。m(_ _)m

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.3

Excel2007以降のバージョンをご使用なら、条件付き書式を使って日付をご希望の表示設定にすることができます。 対象範囲を選択して(アクティブセル=選択開始のセルがB3セルの場合)以下のような手順になります。 ホームタブの条件付き書式で「新しいルール」から「数式を使用して・・・」を選択し、「=AND(MONTH(B3)<10,DAY(B3)<10)」の数式を入力して、 「書式」から表示形式をユーザー定義にして「ggge"年" m"月" d"日"」にします。 さらに、条件付き書式の「ルールの管理」から「新規ルール」で「数式を使用して・・・」を選択し「AND(MONTH(B3)>9,DAY(B3)<10)」の数式を入力して、「書式」から表示形式をユーザー定義にして「ggge"年"m"月" d"日"」を追加します。 さらに、もう一回「AND(MONTH(B3)<10,DAY(B3)>9)」の数式を入力して、「書式」から表示形式をユーザー定義にして「ggge"年" m"月"d"日"」を追加します。 #OFFICEソフトはバージョンによって使用できる機能や操作方法が大きく異なりますので、質問の際には必ずバージョンを明記するようにしましょう。

回答No.2

こんにちは。 >Aを変えればいい事が解りましたが、複数列に対応させる為には、どうすればいいのでしょうか? A:A のところを、A:B とか、必要な列の所を変更すればよいと思います。 If Intersect(Target, Range("A:B")) Is Nothing Or Target.Count > 1 Then Exit Sub 他にも書き方がありますが、とりあえず、こんな風になります。 ---*---*---*--- ついで私もマクロを作ってみました。 前の人が書いたとおり、確かに、フォントは、プロポーショナルですと、揃いませんね。 もしかしたら、バージョン(2010)以外はどうかは分かりません。 書式は、一定で、なぜ、そうなるのかは説明できません。 入力は、日付式なら、何でもいいです。 '// Private Sub Worksheet_Change(ByVal Target As Range)  Dim mDate As Variant  Dim buf As Variant  If Target.Count > 1 Then Exit Sub  mDate = Target.Value  If IsDate(mDate) = False Then Exit Sub  Application.EnableEvents = False  buf = Format(mDate, "gggee年MM月dd日")  buf = Replace(buf, Left(buf, 2) & "0", Left(buf, 2) & " ")  buf = Replace(buf, "年0", "年 ")  buf = Replace(buf, "月0", "月 ")  Target.Font.Name = "MS GOTHIC"  Target.Value = buf  Application.EnableEvents = True End Sub '//

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.1

シート名タブを右クリックしてコードの表示を選ぶ 現れたシートに表示されている内容を全てDeleteキーで消去する 改めて下記をコピー貼り付ける private sub Worksheet_Change(byval Target as excel.range)  dim h as range  dim res as string  for each h in target   if isdate(h) then    res = iif(format(h, "e")-10<0, "ggg e年", "ggge年")    res = res & iif(month(h) < 10, " ", "") & "m月"    res = res & iif(day(h) < 10, " d日", "d日")    h.numberformatlocal = res   end if  next end sub ファイルメニューから終了してエクセルに戻る 任意のセルに日付や他のデータを記入してみる。

関連するQ&A