構造体を使用した場合の、データ処理のやり方についてです。
これまではこちらで助力を頂いてシートとユーザーフォーム間でのやり取りで作成しましたが、仕様を変えなければいけなくなりました。
配列との違いなどは解ったのですが、構造体を介してのデータの読み書きのコードの書き方が解りません・・。
http://pineplanter.moo.jp/non-it-salaryman/2017/09/30/excel-vba-type/
上記のサイトなどを参考にして、間違っていそうですが定義などは書いたのですが
ここからどうデータの読み書きに繋げれば良いのか・・。
やりたいこととしては、更新ボタンを押すと各テキストボックスの値が各該当セルへ。
ユーザーフォームを立ち上げた際にはこれまで入力されたセルの値が、各ボックスに読み込まれるようにしたいです。
ex.10月1日なら1日金曜日の始業時刻に数字を入れると、シートの1日金の始業時刻に値が入る。
いったん閉じてまた開いた際に、今度は終業と休憩を入れると同じ行の各該当ボックスに入る。
(画像のシートは12月になっていますが・・・)
※"セルに入っている値を、構造体へ格納。
構造体に入っているデータを、ユーザーフォーム上で表示。
更新ボタンを押すと、ユーザーフォーム上で表示されているデータを、一旦
構造体に入れて、その後、セルへ書き出し"
標準モジュールに書きこんで、更新ボタンのところでCallで処理を呼び出す形になるのでしょうか・・?
ご教授お願い致します・・・。
発生している問題・エラーメッセージ
エラーメッセージ
該当のソースコード
Type attendance starttime As Date '始業時刻 endtime As Date '終業時刻 breakstart As Date '休憩時間のはじめ breakend As Date '休憩時間のおわり worktime As Single '実働時間 note As string '備考 ※10/16 As singleから修正 End Type Public monthly As attendance 'オブジェクトの定義 Public Sub AttendanceSave() '勤怠保存 For i = 1 To 31 attendance(i).starttime = Cells(i + 2, 3) attendance(i).endtime = Cells(i + 2, 4) attendance(i).breakstart = Cells(i + 2, 5) attendance(i).breakend = Cells(i + 2, 6) attendance(i).worktime = Cells(i + 2, 7) attendance(i).note = Cells(i + 2, 8) Next i End Sub
試したこと
ここに問題に対して試したことを記載してください。
補足情報(FW/ツールのバージョンなど)
【補足】各テキストボックスの名前
txtStarttime1 = 始業時刻(1日月曜日の部分) 2,3,4,5・・・と31まであります。下記のものたちも同様です。
txtEndtime1 = 終業時刻
txtBreakstart1 = 休憩時間のはじめ
txtBreakend1 = 休憩時間の終わり
txtWorktime1 = 実働時間
txtNote1 = 備考
lblWeek1= 曜日ラベル
lblDay1 = 日ラベル
ーーーーーーーーーーー
cmbYear = 西暦コンボボックス
cmbMonth = 月コンボボックス
CommandButton1 = 更新ボタン
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/10/15 01:49
2021/10/15 02:28
2021/10/15 02:58