和暦年が表示できない

このQ&Aのポイント
  • アクティブセルに和暦の年月日を表示する方法がわからない
  • ユーザーフォームのTextBox2には和暦の年が2019と入力されており、ComboBox25には月が6、ComboBox26には日が26と入力されている
  • 実行するとアクティブセルには西暦の年が表示されてしまうが、和暦の年が表示されるようにしたい
回答を見る
  • ベストアンサー

和暦年が表示できない

よろしくお願いします。 アクティブセルに和暦の年月日を表示したいのですが ユーザーフォームの TextBox2は2019(Format(Now, "e")で、和暦に変更後は1です  ) ComboBox25は6 ComboBox26は26 と入力されています。 TextBox2.Value = Format(Now, "ggge") ActiveCell.Value = TextBox2.Value & "/" & ComboBox25.Value & "/" & ComboBox26.Value 【 令和1/6/26 】と正しく表示されます。 下の構文を実行するとアクティブセルに  【 1/6/26 】と表示したいのですが【 2026/1/6 】と表示されます。 TextBox2.Value = Format(Now, "e") ActiveCell.Value = TextBox2.Value & "/" & ComboBox25.Value & "/" & ComboBox26.Value

  • 1211M
  • お礼率54% (90/165)

質問者が選んだベストアンサー

  • ベストアンサー
  • molly1978
  • ベストアンサー率33% (393/1186)
回答No.4

No1,No3です。 文字列として入力するなら、 ActiveCell.Value = "‛" & TextBox2.Value & "/" & ComboBox25.Value & "/" & ComboBox26.Value としたらどうですか。

1211M
質問者

お礼

No1,No3様 ありがとうございました。 これで解決しました。 これからもよろしくお願いします。

その他の回答 (3)

  • molly1978
  • ベストアンサー率33% (393/1186)
回答No.3

EXCELの日付データは内部的には西暦で持ち、表示上和暦にしています。 和暦の入らないデータを入れると、自動的に西暦に変換されてしまいます。表示だけなら、文字列データとして入れれば避けられると思います。 日付データとして扱いたいなら、西暦データを入力して、アクティブセルのプロパティを操作して和暦に変更すればできると思います。 ユーザー定義なら、[$-411]e"/"m"/"d で表示できます。 VBA上の操作を確認する時間がありませんので、よろしくお願いします。

1211M
質問者

お礼

molly1978 様 ありがとうございました。 解決しました。 今後ともよろしくお願いします。

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.2

質問では >アクティブ「セル」!に和暦の年月日を表示したいの・・・となっている。 シートの「セル」のデータの見てくれ(決まった表示形式の結果)を希望していながら、掲示しているコードは、「コントロール」の1つである、テキストボックスのデータの表示形式(Format)ばかり、で、ピントがずれていませんか?文字列で返されるものばかり。 テキストボックスの値は、当然テキストでしかないので、これをセルに好みの見てくれで表示したいなら、  テキストボックスのテキストデータ→日付シリアル値に変換(注)→シートの、そのセルの表示形式を好みに設定セルにセルの値(日付シリアル値=整数値です)を代入 というプロセス(考え方)が必要ではないか。 (注)DateSerial巻数など。 https://www.tipsfound.com/vba/05dateserial ほか多数 ーー エクセルのシートでの日付の関係は、日付シリアル値の仕組の理解や、それへの変換と、それを前提にした、(多様な、エクセルの)表示形式の活用である。 このことを理解せずに、VBA路線のコードの書き方の勉強ばかりしても不十分だと思う。

1211M
質問者

お礼

imogasi 様 ありがとうございました。 解決しました。 今後ともよろしくお願いします。

  • molly1978
  • ベストアンサー率33% (393/1186)
回答No.1

アクティブセルの書式設定が和暦になってないからです。

1211M
質問者

お礼

molly1978様 ありがとうございました。 解決しました。 今後ともよろしくお願いします。

1211M
質問者

補足

molly1978様 早速の回答ありがとうございます。 下記のように和洋歴を切り替えてアクティブセルに入力したいのですが この場合はアクティブセルの書式設定を、和暦西暦に切り替えるにはどうしたらよいのでしょうか。 Private Sub ComboBox1_Click()  If ComboBox1.Caption = "和暦" Then   Frame2.Visible = True    TextBox2.Value = Format(Now, "e")   ComboBox1.Caption = "西暦" Then ElseIf ComboBox1.Caption = "西暦" Then Frame2.Visible = False TextBox2.Value = Format(Now, "yyyy") ComboBox1.Caption = "和暦" Else End If End Sub

関連するQ&A

  • Access での 「年」 のみの和暦変換について

    Accessで今、レポートの作成をしているのですが、その時に「数値」で持っている西暦の年度(例,2004)を和暦で表示する作業を行っています。  「年月日」がある日付型のデータに関しては、Format([年月日],"ggge")で表示されるのですが、数値で持っている4桁の数字に関しては、上記のように書くと突拍子も無い和暦が算出され、ちゃんとした和暦変換がなされないようです。  年度だけをDataとして持ちたいので、日付型で持つ訳にもいきません。解決策が見つからずに困っています。  どなたか、解決策をご提案いただける方、ご回答をお願いします。

  • アクティブセルに制限をつけるには・・・

    ユーザーフォーム上のテキストボックスの値をアクティブセルに転記しているのですが、D列のみのアクティブセルにするにはどうしたらいいでしょうか?ご教授お願い致します。構文は以下の通りです。 Private Sub CommandButton1_Click() ActiveCell.Value = TextBox1.Text ActiveCell.Offset(, 1) = TextBox2.Text ActiveCell.Offset(, 2) = TextBox3.Text End Sub

  • 日付の年を和暦(西暦)とする表示書式

    お世話様です 日付を和暦年(西暦年)月/日と表示する 表示形式をユーザ定義で   ggge"年"(yyyy"年") m"月" d"日"   令和4年(4年)5月13日 と表示されます    令和4年(2022年)5月13日 と表示するユーザ定義は? 因みにyyyy"年"ggge"年") m"月" d"日"とすると  2022年(令和4年)5月13日となりますが

  • アクセスでレポートに和暦を表示させるには

    アクセスで社員名簿を作成しています テーブルを 社員名  ○○○○ 生年月日 1953/09/18 生年月日 空欄 フォームは 社員名  ○○○○ 生年月日 1953/09/18 和暦   昭和28年09月18日      ↑生年月日を入力すると自動で表示されるようにしました レポートは 社員名  ○○○○ 生年月日 1953/09/18 和歴   空欄 上記で理解して頂けるか大変不安ですがフォームで和暦を手入力していないのでテーブルに反映しません それに伴ってレポートも表示されません どうしたらレポートへ和暦を表示することが出来るのでしょうか

  • VB2008で和暦の表示について

    VB2008で和暦を扱いたいときは、JapaneseCalendarクラスを使う方法以外に、VB6のときのように Format(Now, "ggg e年m月d日 aaaa") というようなFormat関数で簡単に書式設定する方法はないのでしょうか。

  • 和暦→西暦(有効範囲を考慮)

    いつもお世話になってます。 VB2010(.NET2.0)、Winアプリ 和暦(元号)と西暦の相互変換についてです。 CultureInfo、JapaneseCalendarを使用して変換しています。 西暦→和暦の変換は問題ないんですが 和暦→西暦の変換時に有効ではない和暦を指定するとエラーとなります。 ここの「有効ではない和暦」というのは例えば「大正30年」とかです。 フォーム上にComboBoxとTextBoxが配置されており ComboBoxには「明治」「大正」「昭和」「平成」を格納、 TextBoxは数値入力のみですが2桁数値というだけで 他の制限はかけていない状態です。 各元号に有効な値を保持しといてって方法は最終手段です。 出来るだけ汎用性を持たせた形で上記エラーを回避したいと思っています。 思いついてる方法はあまりスマートではないので どなたか、こんな風にコーディングすれば出来るよって ヒントでもいいのでご意見いただけると幸いです。 よろしくお願いしますm(_ _)m

  • word2002の差込印刷でExcelで作った生年月日を和暦にしたい

    データはエクセル2002です。生年月日の列は、1975/7/10というように入力し、和暦表示させています。 ワード2002でラベルの差込印刷をし、生年月日フィールドは  { MERGEFIELD "生年月日" \@ "ggge年M月d日"} 修正しましたが、何度訂正しても e年7月10日と表示されます。 どうしたらよろしいのでしょうか? 対処法を教えてください。よろしくお願いします。

  • Excel ユーザーフォーム呼び出し時エラー

    WindowsVista HomePremium Excel 2007 Microsoft Visual Basic 6.5 です。 Excelでユーザーフォーム(UserForm1)を作り、   Sub Auto_Open()     UserForm1.Show   End Sub で起動時に呼び出すようにしました。 確認のため、一度Excelを閉じ起動し直したところ正常に動作しました。 もう一度確認のため同じように再起動をすると、  実行時エラー '2110': コントロールが表示されていない、利用できない、またはフォーカスを持てないため、そのコントロールにフォーカスを移すことはできません。 と出て、それ以降何度やっても動作しなくなってしまいました。 解決法か原因がわかる方いらっしゃいましたら、ぜひご教授ください。よろしくおねがいします。 ユーザーフォーム関係のコードを以下に書いておきます。(内容は小遣い帳のようなものです。) ―――――――――――――――――――― Private Sub CommandButton1_Click() Dim NUM As Integer If TextBox1.Text = "" Then MsgBox "概要が記入されていません。" TextBox1.SetFocus GoTo 100 ElseIf TextBox2.Text = "" Then MsgBox "収支が記入されていません。" TextBox2.SetFocus GoTo 100 ElseIf ComboBox1.ListIndex = -1 Then MsgBox "収支の種類が選択されていません。" ComboBox1.SetFocus GoTo 100 End If Range("F6").Select NUM = 0 Do While ActiveCell.Offset(NUM, 0) <> "" NUM = NUM + 1 Loop ActiveCell.Offset(NUM, 0).Select ActiveCell = TextBox1.Value If CheckBox1 = True Then TextBox2 = -TextBox2 End If If ComboBox1.ListIndex = 0 Or ComboBox1.ListIndex = 1 Then ActiveCell.Offset(0, ComboBox1.ListIndex + 1) = TextBox2.Value Else ActiveCell.Offset(0, ComboBox1.ListIndex + 2) = TextBox2.Value End If TextBox1 = "" TextBox2 = "" CheckBox = Falses ComboBox1.ListIndex = -1 100 End Sub ―――――――――――――――――――― Private Sub CommandButton2_Click() Dim NUM As Integer If TextBox3.Text = "" Then MsgBox "移動金額が記入されていません。" TextBox3.SetFocus GoTo 100 ElseIf ComboBox2.Text = "" Then MsgBox "移動元が選択されていません。" ComboBox2.SetFocus GoTo 100 ElseIf ComboBox3.ListIndex = -1 Then MsgBox "移動先が選択されていません。" ComboBox3.SetFocus GoTo 100 End If Range("F6").Select NUM = 0 Do While ActiveCell.Offset(NUM, 0) <> "" NUM = NUM + 1 Loop ActiveCell.Offset(NUM, 0).Select ActiveCell = "移動" If ComboBox2.ListIndex = 0 Or ComboBox2.ListIndex = 1 Then ActiveCell.Offset(0, ComboBox2.ListIndex + 1) = -TextBox3.Value Else ActiveCell.Offset(0, ComboBox2.ListIndex + 2) = -TextBox3.Value End If If ComboBox3.ListIndex = 0 Or ComboBox3.ListIndex = 1 Then ActiveCell.Offset(0, ComboBox3.ListIndex + 1) = TextBox3.Value Else ActiveCell.Offset(0, ComboBox3.ListIndex + 2) = TextBox3.Value End If TextBox3 = "" ComboBox2.ListIndex = -1 ComboBox3.ListIndex = -1 100 End Sub ―――――――――――――――――――― Private Sub CommandButton3_Click() Unload Me End Sub ―――――――――――――――――――― Private Sub CommandButton4_Click() Unload Me End Sub ―――――――――――――――――――― Private Sub UserForm_Initialize() myarray1 = Array("収支", "クレジット", "郵便局", "机", "500", "1") For i = 0 To 5 ComboBox1.AddItem myarray1(i) ComboBox2.AddItem myarray1(i) ComboBox3.AddItem myarray1(i) Next i TextBox1.SetFocus End Sub

  • Excel VBA テキストボックスに当日の日付

    Excel 2013において、VBAで入力フォームを作成中の初心者です。 入力フォームの中に日付の項目があり、テキストボックスに手入力しています。 そのテキストボックスに当日の日付を自動で表示させたく、ネットで調べ試しましたが、うまくいきません。 やりたいこととしては、テキストボックスに今日の日付を自動的に和暦で表示させ、その日付を変更する場合には、「2016-12-03」などと入力後、和暦に自動的に変換して表示させたいのです。 手入力において、「2016-12-03」と入力後、自動的に和暦に変換するコードはネットで見つけることができ、うまくいったのですが、当日の日付を自動的に表示させる方法がわからずにおります。 日付を手入力後、和暦で表示させるコードは以下のようにしてあります。 Private Sub textbox1_AfterUpdate() With Me.textbox1 If IsDate(.Value) Then .Value = Format(.Value, "ggge年m月d日") End If End With End Sub どなたか、教えていただけると助かります。 よろしくお願いいたします。

  • WORD差し込み印刷:文字+日付データを和暦表示

    WORD 2007 差し込み印刷で、日付データの前に"受験年月日:"を表示し、更に日付を和暦で表示できるようにしたいのですが、うまくいきません。 ”受験年月日”に日付けがある人もいれば、ない人もいます。 そこで、Wordの差し込み印刷機能を使い、各個人の備考欄に”受験年月日”に日付けがある人は、 受験年月日:平成23年8月1日 と表示させたいのです。 { MERGEFIELD 受験年月日 \@ "ggge年M月d日" }で和暦表示まではできるのですが、これに受験年月日:をくっつけることができずに困っています。 ご存知の方、ご教示ください。

専門家に質問してみよう