• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:MsgBoxへの和暦表示について)

MsgBoxへの和暦表示について

このQ&Aのポイント
  • G2に=DATE(C1,G1,1)で日付を取得し和暦表示で「H25年03月」とセルの書式設定でしているのですが、これをMsgBoxに同じように表示させたいのですが、お教え願えませんでしょうか。
  • 質問者は、Excelのセルに日付を取得し和暦表示に書式設定しているが、同じようにMsgBoxに表示させたいという課題を抱えています。
  • Windows7とOffice2010を使用しています。質問者は、MsgBoxに和暦表示を実装したいが、具体的な方法がわからないため、教えてほしいと求めています。

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

  • ベストアンサー
  • sean9
  • ベストアンサー率86% (26/30)
回答No.1

こんにちは。 フォーマットを指定します。 Dim text = Format(ActiveSheet.Range("G2").Value, "ge年mm月") ret = MsgBox(text & "の勤務割表を編集データを元に作成します。よろしいですか?", _ vbOKCancel + vbQuestion, "作成") もしくは ret = MsgBox(Format(ActiveSheet.Range("G2").Value, "ge年mm月") & "の勤務割表を編集データを元に作成します。よろしいですか?", _ vbOKCancel + vbQuestion, "作成") になります。

Rord
質問者

お礼

 御丁寧な解答ありがとうございます。Formatの指定はわかっていたのですが、 Valueの後の "ge年mm月"の書き方がわかりませんでした。 紙媒体ではこうはいきませんし。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.2

Range("G2").Value ではなく Range("G2").Text ならどうですか?

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 印刷プレビュー表示後ユーザーフォームが閉じません。

     下記のコードで印刷プレビューが表示された後,UserForm3が閉じるようにしてありましたができなくなりました。プレビューの閉じるボタンをクリックするとUserForm3一緒に閉じます。解決策がありましたらお願いします。勉強不足でわかりませんので。 Sub 印刷範囲() Application.ScreenUpdating = False Dim ret As Integer ret = MsgBox("印刷範囲を、" & ActiveSheet.Range("B59").Value & "勤務表上に" _ & "表示します。  よろしいですか?", _ vbOKCancel + vbQuestion, "メイン処理") Select Case ret Case vbOK UserForm3.Show vbModeless UserForm3.Repaint With Worksheets("メイン") .PageSetup.CenterHorizontally = True .PageSetup.CenterVertically = True .PrintPreview End With Unload UserForm3 End Select Application.ScreenUpdating = True End Sub

  • Worksheet_Changeについて

     特定のマクロの前後でWorkSheet_Changeを終了し再開させる方法がありましたらお願い致します。 Windows7 SP1 Office2010 Private Sub WorkSheet_Change(ByVal Target As Range) Dim c As Range For Each c In Target Select Case c.address(0, 0) Case "C1" If Intersect(Target, Range("C1")) Is Nothing Then Exit Sub '検査範囲 Application.EnableEvents = False '再帰実行の停止 If Range("C1").Value <> Sheets("祝祭日").Range("A1").Value Then MsgBox ("祝日の設定を反映するため年度を同じにしてください。") End If Application.EnableEvents = True Case Else Select Case c.address(0, 0) Case "G1" If Range("G1") = 4 Then '4月データの表示 Dim ret As Integer ret = MsgBox(Format(ActiveSheet.Range("G5").Value, "ge年mm月") & "の勤務割表の編集&入力保存データを元に表示します。" & vbCrLf & "よろしいですか?", _ vbOKCancel + vbQuestion, "勤務割表表示切替確認") Select Case ret Case vbOK UserForm8.Show vbModeless UserForm8.Repaint 当月データのクリア メインデータの復元4月 編集データの復元4月 Sheets("メイン・1").Select Unload UserForm8 Sheets("メイン・1").Range("G1").Select ActiveCell.FormulaR1C1 = "4" ※ ここで終了ないし一時停止 図形の貼付け ※ここで再開させたいのですが? Case vbOKCancel Exit Sub End Select ElseIf Range("G1") = 5 Then '5月データの表示 ret = MsgBox(Format(ActiveSheet.Range("G5").Value, "ge年mm月") & "の勤務割表の編集&入力保存データを元に表示します。" & vbCrLf & "よろしいですか?", _ vbOKCancel + vbQuestion, "勤務割表表示切替確認") Select Case ret Case vbOK UserForm8.Show vbModeless UserForm8.Repaint 当月データのクリア メインデータの復元5月 編集データの復元5月 Sheets("メイン・1").Select Unload UserForm8 図形の貼付け Case vbOKCancel Exit Sub End Select End If End Select End Select Next End Sub

  • エクセル VBA MsgBox

    1)下記の記述だと コンボが空白ならエラー表示が出て Okをクリックすると ”記録しますか?” となります! そこをエラー表示されたら UserFormに戻り 空白が無くなったら ”記録しますか?” というMegBoxにしたいのですが どう変化すれば良いのでしょうか? 教えて下さい! Private Sub CommandButton1_Click() Dim i As Integer For i = 1 To 10 If Controls("ComboBox" & i).Text = "" Then MsgBox "選択されていません確認して下さい!", vbInformation, "良く見て下さい!" Exit For End If Next If MsgBox("記録しますか?", vbOKCancel) = vbOK Then With UesrForm From.TextBox1 = Val(UesrFrom.ComboBox1) + _ Val(UesrFrom.ComboBox2) + Val(UesrFrom.ComboBox3) + _ Val(UesrFrom.ComboBox4) + Val(UesrFrom.ComboBox5) From.TextBox2 = Val(UesrFrom.ComboBox6) + _ Val(UesrFrom.ComboBox7) + Val(UesrFrom.ComboBox8) + _ Val(UesrFrom.ComboBox9) + Val(UesrFrom.ComboBox10) End With MsgBox " 記録します!" Unload Me Else MsgBox " キャンセル!!" End If End Sub

  • 処理終了後のに砂時計が、クリックしないと矢印に

     高速処理ができるようにしたのはいいのですが、マウスポインタの砂時計がクリックしないと矢印に戻りません。自分のパソコンでは、クリックしないで戻るのですが。会社のパソコンだとできません。スッペクの良し悪しなのか、スペックに関係なくクリックしないで矢印に戻る解決方法があればお願いします。(コードは下記です。) Windows7 Office2010 Private Sub 定義の書込_Click() Application.ScreenUpdating = False Application.Calculation = xlCalculationManual Dim ret As Integer ret = MsgBox("メインシートのデータを、" & ActiveSheet.Range("C54").Value & "の勤務表に" _ & "書き込みます。 よろしいですか?", _ vbOKCancel + vbQuestion, "メイン・2") Select Case ret Case vbOK UserForm2.Show vbModeless UserForm2.Repaint Dim i As Integer Dim j As Integer For i = 1 To 16 For j = 1 To 31 Dim addrname_workpattern As String addrname_workpattern = "" With Worksheets("メイン") Select Case .Cells(9 + (i - 1) * 2, 10 + (j - 1) * 3).Value Case 1: addrname_workpattern = "勤務1" Case 2: addrname_workpattern = "勤務2" Case 3: addrname_workpattern = "勤務3" Case 4: addrname_workpattern = "日勤1" Case 5: addrname_workpattern = "日勤2" Case 6: addrname_workpattern = "日勤3" Case Else Select Case .Cells(10 + (i - 1) * 2, 9 + (j - 1) * 3).Value Case 1: addrname_workpattern = "日勤4" Case Else Select Case .Cells(9 + (i - 1) * 2, 9 + (j - 1) * 3).Value Case 2: addrname_workpattern = "明け" Case 3: addrname_workpattern = "日勤" Case 4: addrname_workpattern = "夜勤" Case 5: addrname_workpattern = "公" Case 6: addrname_workpattern = "有" Case 7: addrname_workpattern = "特" Case 8: addrname_workpattern = "振" Case 9: addrname_workpattern = "欠" End Select End Select End Select End With If addrname_workpattern <> "" Then ActiveSheet.Range(addrname_workpattern).Copy Cells(7 + i, 5 + (j - 1) * 3).PasteSpecial Application.CutCopyMode = False End If Next Next Unload UserForm2 Range("E10:CS10").Select Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove Range("E34:CS34").Select Selection.Delete Shift:=xlUp Macro9 Application.ScreenUpdating = True Application.Calculation = xlCalculationAutomatic End Select End Sub

  • 連続印刷中のMsgBox

    エクセルVBAで作業をしています iをFor・・・Nextで回し50枚程度の印刷を行うのですが、 途中15枚程度で続行か中止かをMsgBoxで振り分けを行いたいのですが プリントOUT処理の後 If i = 10 Then     ans2 = MsgBox("15枚印刷しましたまだ続けますか?", vbYesNo + vbInformation, "印刷実行")     Select Case ans2      Case vbYes     Select Case ans2      Case vbNo      Exit For      End Select Next i  End With  End Select End Sub 書くとNextに対するFORがありませんと出ました どうすれば良いでしょうか

  • EXCEL VBA コンボボックス、テキストボックスが未入力のときメッセージを表示する方法

    ユーザーフォームにコンボボックス2個textboxが2個あります コンボは選択のみです。 コンボとtextbox1は入力必須にして、空欄でコマンドボタンが押された時はメッセージを表示したいです OKwebを参考に作ったのですが、コンボ1が空欄でもMsgが出ません 願いします Private Sub CommandButton1_Click() Dim ctrl As Control, tst1 As String, txt2 As String Dim ws As Worksheet Set ws = Sheets("sheet1") For Each ctrl In Me.Controls Select Case ctrl.Name Case "ComboBox1", "ComboBox2", "TextBox1" If Me.Controls(ctrl.Name).Value = "" Then txt1 = txt1 & ctrl.Name & vbLf Else txt2 = txt2 & Me.Controls(ctrl.Name).Value & vbLf End If End Select Next If Len(txt1) > 0 Then MsgBox "以下の値を入力してください" & vbLf & txt1, vbExclamation Exit Sub Else ret = MsgBox("以下の値を入力します" & vbLf & txt2, vbOKCancel) If ret <> vbOK Then Exit Sub

  • サブフォームのレコード削除

    サブフォーム(帳票)のレコード削除をしたいのですが、レコードセクレタをクリックして選んだレコードではなく、テーブルの最初のレコードから順番に削除されてしまいます。 Dim cn As ADODB.Connection Dim rs As ADODB.Recordset Dim ret As Integer '接続 Set cn = CurrentProject.Connection 'レコードセットを取得 Set rs = New ADODB.Recordset rs.Open "T支店", cn, adOpenKeyset, adLockOptimistic '削除 ret = MsgBox("表示中のレコードを削除しますか?", vbYesNo + vbQuestion, "削除") Select Case ret Case vbYes rs.Delete Me!sub支店.Form.Requery Case vbNo Exit Sub End Select '終了 rs.Close: Set rs = Nothing cn.Close: Set cn = Nothing WINDOWS98、ACCESS2000をしようしています。よろしくお願いします。

  • 強制終了になってしまいます

    Windows98 ACCESS2000を使用しています。 よく強制終了になったり、"2486 現在このアクションは実行出来ません"などのエラーが頻繁に出て困っています。 削除をした後にエラーになる事が多いので、多分これが原因なのではと思います。 顧客情報フォームというメインフォームに、支店、事業概要、賃金…などの複数のタブがあり、それぞれにサブフォームとサブフォームに対して登録ボタンと削除ボタンが貼り付けてあります。 Private Sub cmd支店削除_Click() Dim rs As DAO.Recordset If Me!sub支店.Form.Recordset.recordcount = 0 Then MsgBox ("削除するレコードはありません。") Exit Sub End If Set rs = Me!sub支店.Form.Recordset.Clone rs.Bookmark = Me!sub支店.Form.Bookmark ret = MsgBox("表示中のレコードを削除します。よろしいですか?", _ vbOKCancel + vbQuestion + vbDefaultButton2, "削除") Select Case ret Case vbOK rs.Delete Me!sub支店.Form.Requery Case vbCancel End Select rs.Close: Set rs = Nothing End Sub Private Sub cmd支店登録_Click() If IsNull(Me!cbo顧客.Value) Then MsgBox "顧客名を選択して下さい。" Exit Sub Else DoCmd.OpenForm "F支店登録", acNormal End If End Sub という風に書いてあるのですが、たくさんサブフォームがあるのでブックマークのつけ方がおかしいのでは?と思うのですがさっぱり分かりません。よろしくお願いします。

  • ExcelVBAで、広範囲セルの空白チェックをしたいと思います。

    ExcelVBAで、広範囲セルの空白チェックをしたいと思います。 以下のようなExcelシートがあります。 ・10行目まではタイトル行 ・データ入力可能セル範囲はA11~AF65536 全てのデータ範囲を削除するために、以下のコードを作成しました。 動きとしては問題ないのですが、データが存在しない場合の 処理時間が長くなってしまいます。 Sub 全データ削除() Dim endrow As Long Dim mydelete As Integer Dim myrange As Range endrow = Range("A11").End(xlDown).Row For Each myrange In Range("A11:AF" & endrow) If myrange.Value <> "" Then GoTo 削除処理 End If Next myrange MsgBox "データがありません。" Exit Sub 削除処理: mydelete = MsgBox("全てのデータを削除しますか?", vbOKCancel) Select Case mydelete Case vbOK Rows("11:65536").Delete Range("D4").Formula = "=COUNTA(A11:A65536)" MsgBox "データを削除しました。" Exit Sub Case vbCancel MsgBox "キャンセルされました。" Exit Sub End Select End Sub データ範囲が65536行までになってしまうため時間がかかっているのだと思いますが、 回避方法がわかりません。 ご教授お願いいたします。

  • Accessフォームで更新確認

    ACCESSで管理台帳を作成しています。 不用意なデータ上書きがないよう下記のようなプロシージャで確認を行っています。 Private Sub 更新確認() Dim ret, cancel Beep ret = MsgBox("変更内容を保存しますか?", vbYesNoCancel + vbQuestion, "現レコード更新保存") Select Case ret Case vbYes Case vbNo Me.Undo Case vbCancel cancel = True End Select End Sub このプロシージャはBeforeUpdateで動作させています。 メインフォームではうまく動作するのですが、サブフォーム(帳票形式)に記載すると 値が変わらなくても違うセル(レコード)を選択すると動作してしまいます。 なにかうまく動作させられないでしょうか? ご教授お願いします

このQ&Aのポイント
  • 職業訓練校で恋愛感情を抱く講師への相談です。
  • 少人数のクラスで男性受講生との交流が少ない状況での悩みです。
  • 受講生と講師の関係でのデメリットについて経験者の意見を求めたい。
回答を見る

専門家に質問してみよう