ユーザーフォームfrmMedicalInfoEntryに日付入力用のテキストボックスtxtDateとコマンドボタンbtnDispCalenderと配置して、カレンダーユーザーフォームfrmCalenderで作った、カレンダーから日付を入力するため、クラスモジュールclsCalenderにコードを以下のとおり追加して、実行しようとすると、「変数arryClass(c)が定義されていません」とエラーメッセージが出てプロシージャが止まってしまいます。何処が間違っているのでしょうか?ちなみに「’」のところはカレンダーが表示されないのでコメントアウトしているところです。なお、字数がオーバーするので、同一質問②で送ります。よろしくご教授ください。
①frmCalenderのコードは以下のとおりです。
Private arrayClass() As New clsCalender
'Public EntryControl As String
'Public RarentForm As UserForm
Private Sub cmbMonth_Change()
If CheckParam() Then
makeCalender cmbYear.Value, cmbMonth.Value
End If
End Sub
Private Sub cmbYear_Change()
If CheckParam() Then
makeCalender cmbYear.Value, cmbMonth.Value
End If
End Sub
Private Sub SpinButton1_SpinDown()
If cmbMonth.Value = 1 Then
cmbMonth = 12
cmbYear.Value = cmbYear - 1
Else
cmbMonth = cmbMonth - 1
End If
End Sub
Private Sub SpinButton1_SpinUp()
If cmbMonth.Value = 12 Then
cmbMonth = 1
cmbYear.Value = cmbYear + 1
Else
cmbMonth = cmbMonth + 1
End If
End Sub
Private Sub UserForm_Initialize()
Dim lbl As MSForms.Label
Dim i As Integer, j As Integer, c As Integer
Dim arrayClass() As Variant
Dim Weekdays() As Variant 'データ型に注意
Weekdays() = Array("日", "月", "火", "水", "木", "金", "土")
For i = 1 To 7
Set lbl = Me.Controls.Add("Forms.Label.1", , True)
With lbl
.Caption = Weekdays(i - 1)
.Width = 15
.Height = 15
.Left = 5 + (.Width + 2) * (i - 1)
.Top = 20
.BorderColor = &H666666
.BorderStyle = fmBorderStyleSingle
.Font.Size = 11
End With
Next
c = 1
For i = 1 To 6 '縦方向
For j = 1 To 7 '横方向
Set lbl = Me.Controls.Add("Forms.Label.1", , True)
With lbl
.Width = 15
.Height = 15
.Left = 5 + (j - 1) * (.Width + 2)
.Top = 20 + i * (.Height + 2)
.BorderColor = &H666666
.BorderStyle = fmBorderStyleSingle
.Font.Size = 11
.TextAlign = fmTextAlignRight
.Name = "D" & c
' ReDim Preserve arryClass(c)
' arrayClass(c).NewCalender lbl, Me
c = c + 1
End With
Next
Next
For i = Year(Date) - 3 To Year(Date) + 3
cmbYear.AddItem i
Next
For i = 1 To 12
cmbMonth.AddItem i
Next
'コンボボックスに値を代入すると、Changeイベントが発生する
cmbYear.Value = Year(Date)
cmbMonth.Value = Month(Date)
'Public変数の呼び出し元のフォームを格納
' Set ParentForm = frmMedicalInfoEntry
End Sub
Sub makeCalender(Nen As Integer, Tsuki As Integer)
Dim i As Integer, c As Integer
Dim WeekDay_of_firstday As Integer
Dim lastDay As Integer
Dim myDate As Date
'ラベルの表示をクリア
For i = 1 To 42
Controls("D" & i).Caption = ""
Next
c = 1
WeekDay_of_firstday = getWeeekday1st(Nen, Tsuki)
lastDay = Day(DateSerial(Nen, Tsuki + 1, 1) - 1) - 1
For i = WeekDay_of_firstday To WeekDay_of_firstday + lastDay
Controls("D" & i).Caption = c
Controls("D" & i).Tag = CStr(DateSerial(Nen, Tsuki, c))
Controls("D" & i).ForeColor = vbBlack
c = c + 1
Next
'前月の日付の設定
myDate = DateSerial(Nen, Tsuki, 1) - 1
c = Day(myDate)
For i = WeekDay_of_firstday - 1 To 1 Step -1
Controls("D" & i).Caption = c
Controls("D" & i).Tag = CStr(DateSerial(Year(myDate), Month(myDate), c))
Controls("D" & i).ForeColor = RGB(100, 100, 100)
c = c - 1
Next
'来月の日付の設定
myDate = DateSerial(Nen, Tsuki + 1, 1)
c = 1
For i = WeekDay_of_firstday + lastDay + 1 To 42
Controls("D" & i).Caption = c
Controls("D" & i).Tag = CStr(DateSerial(Year(myDate), Month(myDate), c))
Controls("D" & i).ForeColor = RGB(100, 100, 100)
c = c + 1
Next
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
つい集めてしまうものはなんですか?
人間誰もは1つ「やたらこればかり集めてしまう」というものがあるもの。 あなたにとって、つい集めてしまうものはなんですか?
-
家・車以外で、人生で一番奮発した買い物
どんなものにお金をかけるかは人それぞれの価値観ですが、 誰もが一度は清水の舞台から飛び降りる覚悟で、ちょっと贅沢な買い物をしたことがあるはず。
-
「これはヤバかったな」という遅刻エピソード
寝坊だったり、不測の事態だったり、いずれにしても遅刻の思い出はいつ思い出しても冷や汗をかいてしまいますよね。
-
許せない心理テスト
私は「あなたの目の前にケーキがあります。ろうそくは何本刺さっていますか」と言われ「12本」と答えたら「ろうそくの数はあなたが好きな人の数です」と言われ浮気者扱いされたことをいまだに根に持っています。
-
あなたの習慣について教えてください!!
あなたが習慣だと思って実践しているものを共有してくださいませんか? 筋肉トレーニングでも朝シャワーでも、あなたが習慣だなと思えば何でも構いません
-
テキストボックスにカレンダー表示して入力方法
Visual Basic(VBA)
-
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
エクセルVBA セル選択後にカレンダーコントロールから日付を入力したい
Visual Basic(VBA)
-
-
4
エクセルVBAのフォームで日時を入力しやすくしたい
Excel(エクセル)
-
5
エクセルVBA テキストボックスに3桁ごとにコンマ
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・チョコミントアイス
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・あなたの習慣について教えてください!!
- ・ハマっている「お菓子」を教えて!
- ・高校三年生の合唱祭で何を歌いましたか?
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・家の中でのこだわりスペースはどこですか?
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ユーザーフォームのテキストボ...
-
アクセスのUserFormにはInitial...
-
Excelにて、ユーザーフォームで...
-
ユーザーフォーム上に現在日時...
-
ACCESSのフォーム、開くんです...
-
VBA(エクセル)のユーザー...
-
Microsoft Forms とか、それに...
-
フォームの位置を取得したい
-
TEXTBOX_CHANGEのイベント抑制
-
Excel VBA ユーザーフォーム 複...
-
Current、Openがそれぞれ2回発...
-
ExcelVBAのユーザーフォームの...
-
子フォームでDB更新後、親フォ...
-
Visual C# .NETのShowDialog()...
-
VBA コンボボックスとテキスト...
-
モーダルフォームとモードレス...
-
フォームを画面の下側ぴったり...
-
MSGBOXのフォント大きさ変更
-
プログレスバーの表示方法
-
VB.NETでフォームロード中のエ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ユーザーフォームを表示中にシ...
-
ExcelVBAのユーザーフォームの...
-
クリックイベントなのに、2回ク...
-
エクセルVBAのフォームを最...
-
ユーザーフォームのテキストボ...
-
VBAでユーザーフォームを再表示...
-
Form_Load と Form_Activate の...
-
Microsoft Formsの「個人情報や...
-
モーダルフォームとモードレス...
-
Hideについて(.NET)
-
ACCESSのフォーム、開くんです...
-
フォームウィンドウを最前面に...
-
VBA(エクセル)のユーザー...
-
ユーザーフォーム上に現在日時...
-
Excelにて、ユーザーフォームで...
-
コントロールの存在確認
-
'ユーザーフォーム右上隅の[×...
-
MSGBOXのフォント大きさ変更
-
フォームのテキストボックスな...
-
Accessで、一つのフォーム画面...
おすすめ情報
実際にはどう書き変えればいいのでしょうか? まだ初心者なので、教えていただければ助かります。よろしくお願いします。