Excel (VBA)

Excel VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 10 Home : Excel 2016)
令和の数字を全角に
投稿日時: 22/03/03 08:44:13
投稿者: rinahana

いつもお世話になっています。 
町の班が60あります。その班に配布するチラシをエクセルで作成しています。
その表題の”令和4年”という部分があるのですが、VBAを使って「年度 = Format(Date, "ggge年")」までは出来ているのですが、 ”令和4年”の4を全角にしたいのですが、なかなかうまくいきません。可能ですか?教えて下さい。
間違いではないので、不可能なら仕方がないのですが、ちょっとしたコダワリです。
宜しく

回答
投稿日時: 22/03/03 09:11:57
投稿者: Suzu

VBA の Formatではなく、 Excel の TEXT関数を使います。 その上で、[DBNum3]ggge年 です。
 
あるいは、素直に StrConv(vbWide)と組み合わせます。

回答
投稿日時: 22/03/03 11:46:42
投稿者: WinArrow
投稿者のウェブサイトに移動

「表題」の表示方法について、教えてください。
  
(1)表題のセルには数式が入っていて、「年度」が入っているセルを参照している
という想定して・・・
掲示の
>Format(Date, "ggge年")
を「表題」に組み込むつもりですか?
  
申しえておきますが、
Date(TODAY())を使って取得する「年」は、「年度」と違います。
ので、「年度」というセルを用意し、「年度」セルを「表題」の数式で参照します。
VBAで対応する必要はありません。
 
例えば、年度を「4月1日〜翌年の3月31日」と定めている場合、
年度:=IF(MONTH(TODAY())<4,TEXT(DATE(YEAR(TODAY())-1,1,1),"[DBNUM3]ggge年度"),TEXT(TODAY(),"[DBNUM3]ggge年度"))
 
表題の数式例
=年度&"の○○○の□□について"

回答
投稿日時: 22/03/03 13:34:51
投稿者: WinArrow
投稿者のウェブサイトに移動

関数を短縮バージョンにしました
 
=TEXT(EDATE(TODAY(),IF(MONTH(TODAY())<4,-MONTH(TODAY()),0)),"[DBNUM3]ggge年度")

投稿日時: 22/03/03 19:40:50
投稿者: rinahana

Suzuさん、WinArrowさん
貴重なお教えをありがとうございます。
私の不注意で誤解を招いた部分がありますので、お詫び申し上げます。
変数"年度"は以前作成したコードを使った関係で"年度"が問題になっておりますが、この
表題が使用される月が9月から11月なので、1月、2月、3月が問題になる年度の問題は
あまり問題になりません。でも 私が年度の時はdateの年をマイナス1で対処していますが
WinArrowさんの --MONTH(TODAY()は気づきませんでした。ありがとうございます。
皆さんのお教えのお陰で、
  年度 = Application.Text(Date, "[DBNum3]ggge年")
上手くいきました。ありがとうございます。