Excel VBA 質問スレッド №2174 (未解決)

VBAのプログラムコードで困っています

投稿者 : MDQ     投稿日時 : 2026/03/06(Fri) 12:55:22     OS : 未指定     EXCEL : 未指定
ユーザーフォームのテキストボックスにて年と月を表示させて、その結果をセル「A1:B1」に反映させたい場合どうすればいいですか
この2つは動作するため、このままで行いたい
そして、ユーザーフォームで TXET1 年 TEXT2 月と表示させたい

Private Sub 翌月_Click()
  Dim A 
  A = DateAdd("m",1,DateSerial(A1,B1,1))
  A1 = Year(A)
  B1 = month(A)
End Sub

Private Sub 先月_Click()
  Dim A 
  A = DateAdd("m",-1,DateSerial(A1,B1,1))
  A1 = Year(A)
  B1 = month(A)
End Sub

スポンサーリンク
[返信 1] Re : VBAのプログラムコードで困っています
投稿者 : AI回答他     投稿日時 : 2026/03/06(Fri) 15:25:54
A!,B!をテキストボックスに変えてみ

=は、右辺の物を左辺に入れる

[返信 2] Re : VBAのプログラムコードで困っています
投稿者 : ごんぼほり     投稿日時 : 2026/03/06(Fri) 16:30:18
>この2つは動作するため
動きませんでした
A1とかB1ってなんですか?

Private Sub 翌月_Click()
  Dim A
  A = DateAdd("m", 1, DateSerial(Range("A1").Value, Range("B1").Value, 1))
  Range("A1").Value = Year(A)
  Range("B1").Value = Month(A)
  Me.Label1.Caption = Format(A, "yyyy年m月")
End Sub

Private Sub 先月_Click()
  Dim A
  A = DateAdd("m", -1, DateSerial(Range("A1").Value, Range("B1").Value, 1))
  Range("A1").Value = Year(A)
  Range("B1").Value = Month(A)
  Me.Label1.Caption = Format(A, "yyyy年m月")
End Sub

[返信 3] Re : VBAのプログラムコードで困っています
投稿者 : ピロリ     投稿日時 : 2026/03/07(Sat) 08:48:38
ごんぼほりさんと被りますが、
> この2つは動作するため、このままで行いたい
ご提示のコードだけではコンパイルエラーで動作しませんよ。 A1,B1 って Public変数なのですか?
それともセルのアドレス: [A1],[B1] の間違い?
> そして、ユーザーフォームで TXET1 年 TEXT2 月と表示させたい
TXET1,TEXT2 って何ですか? TextBox1,TextBox2 の間違い?

Private Sub 翌月_Click()
  Dim A As Date
  A = DateAdd("m", 1, DateSerial([A1], [B1], 1))
  [A1] = Year(A):  Me.TextBox1.Text = Year(A)
  [B1] = Month(A): Me.TextBox2.Text = Month(A)
  
  '個人的には、下のように書きますけど・・・
  ' A = DateAdd("m", 1, DateSerial(Range("A1"), Range("B1"), 1))
  ' Range("A1") = Year(A):  Me.TextBox1.Text = Year(A)
  ' Range("B1") = Month(A): Me.TextBox2.Text = Month(A)
End Sub

[返信 4] Re : VBAのプログラムコードで困っています
投稿者 : 天才     投稿日時 : 2026/03/09(Mon) 07:31:34
Option Explicit

'=================================
' フォーム起動時
' セルA1:B1の年月を表示
'=================================
Private Sub UserForm_Initialize()

    TextBox1.Value = Worksheets("入力").Range("A1").Value
    TextBox2.Value = Worksheets("入力").Range("B1").Value

End Sub


'=================================
' 翌月ボタン
'=================================
Private Sub 翌月_Click()

    Dim A
    
    'あなたのロジックそのまま
    A = DateAdd("m", 1, DateSerial(TextBox1.Value, TextBox2.Value, 1))
    
    TextBox1.Value = Year(A)
    TextBox2.Value = Month(A)
    
    'セルへ反映
    Worksheets("入力").Range("A1").Value = TextBox1.Value
    Worksheets("入力").Range("B1").Value = TextBox2.Value
    
    '既存処理実行
    Call データ更新

End Sub


'=================================
' 先月ボタン
'=================================
Private Sub 先月_Click()

    Dim A
    
    'あなたのロジックそのまま
    A = DateAdd("m", -1, DateSerial(TextBox1.Value, TextBox2.Value, 1))
    
    TextBox1.Value = Year(A)
    TextBox2.Value = Month(A)
    
    'セルへ反映
    Worksheets("入力").Range("A1").Value = TextBox1.Value
    Worksheets("入力").Range("B1").Value = TextBox2.Value
    
    '既存処理実行
    Call データ更新

End Sub
こちらではないですかね。

[返信 5] Re : VBAのプログラムコードで困っています
投稿者 : MDQ     投稿日時 : 2026/03/09(Mon) 08:42:07
天才さんの形であっていますが変数がずっとエラーが出ます

当掲示板について
  • Excel VBA に関する掲示板です。Excel VBA に関する質問や疑問、それに対する解決方法など気軽に投稿してください。
  • 記事内ではHTMLのタグは使用できません。
  • 記事は一度投稿すると修正できません。内容を訂正したい場合は返信で対応してください。
  • Sub〜End Sub、Function〜End Function は自動的にプログラムコードとみなし、枠で囲って見やすくします。
  • Excel VBA とは関係ないことや、他人が不快に思うようなことなど、管理人が適当でないと判断した記事は削除する場合があります。
スポンサーリンク
返信入力フォーム
お 名 前  :
内  容   :

ステータス  :

認証コード  : キャプチャ画像 




( 処理日時 : 2026-03-10 03:57:41 )
タイトルとURLをコピーしました