Excel VBA 質問スレッド №2174 (未解決)
VBAのプログラムコードで困っています
投稿者 : MDQ 投稿日時 : 2026/03/06(Fri) 12:55:22 OS : 未指定 EXCEL : 未指定
ユーザーフォームのテキストボックスにて年と月を表示させて、その結果をセル「A1:B1」に反映させたい場合どうすればいいですか
この2つは動作するため、このままで行いたい
そして、ユーザーフォームで TXET1 年 TEXT2 月と表示させたい
ユーザーフォームのテキストボックスにて年と月を表示させて、その結果をセル「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!をテキストボックスに変えてみ
=は、右辺の物を左辺に入れる
A!,B!をテキストボックスに変えてみ
=は、右辺の物を左辺に入れる
[返信 2] Re : VBAのプログラムコードで困っています
投稿者 : ごんぼほり 投稿日時 : 2026/03/06(Fri) 16:30:18
>この2つは動作するため
動きませんでした
A1とかB1ってなんですか?
>この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 の間違い?
ごんぼほりさんと被りますが、
> この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 )