お世話になります。
hatena chips様のカレンダー形式のスケジュール管理フォームを使わせて頂いているのですが、開いたときに、当日のスケジュールを表示するには、VBAをどのようにすればよろしいでしょうか?
ご教授頂けましたら幸いです。よろしくお願いいたします。
お世話になります。
hatena chips様のカレンダー形式のスケジュール管理フォームを使わせて頂いているのですが、開いたときに、当日のスケジュールを表示するには、VBAをどのようにすればよろしいでしょうか?
ご教授頂けましたら幸いです。よろしくお願いいたします。
hatena様
ご教授ありがとうございます。
できました。
ありがとうございます。いろいろアレンジして、またわからなかったら教えてください。
また、ご教示ください。
左のカレンダーの件名の表示ですが、1件目と2件目に一行スペースがありますが、これを詰めて表示するためにはどのようにしたらよいでしょうか?
たびたびになり恐縮ですが、ご指導ください。
よろしくお願い申し上げます。
SetScheduleプロシージャ内の下記の部分の、vbCrLf は改行ですので、それを一つにすればいいです。
ご返事ありがとうございます。できました。本日より部署で運用開始しました。
お世話になっております。また、ご教示ください。
左のカレンダーの件名の表示ですが、時刻順に表示することは可能でしょうか?時刻と件名を表示できるとさらに視認性が上がるのですが。VBAをどう書いたらよいでしょうか?
SetSchedule()
内のSQLにORDER BY 時刻
を追加すればいいでしょう。ありがとうございます。
順番変わりました。ありとうございます。もうひとつの時刻と件名を同時表示できるとさらに視認性が上がるのですが。VBAをどう書いたらよいでしょうか?
あとですが、最初の記載が悪くリカバー時にクラスオブジェクトがすべて消えてしまいました。
こちらはどのようにリカバーすればよいでしょうか?古いバックアップはあります。
初心者で大変ご迷惑をおかけいたします。部署で動いているため困っています。
当て推量ですが、「改行スペースを詰めて表示」に続けて、「件名と改行の間に時刻を加えて表示」
当て推量ですが、「時刻順」に続けて、「日付と件名と時刻でレコードセットを開く」
よくわからないけれど、もう一度サンプルダウンロードからやり直すのは?
運用開始するのであれば、個人使用で出来る範囲に留めておくほうが、無難でしょう。
やった事がないのであれですが、部署で運用開始とか、ものすごい覚悟が要ると思います。
赤字を緑字に修正すればいいでしょう。
一例ですので、これをヒントにして希望の形に修正してください。
それぞれのコードの意味を調べて理解するようにしましょう。
実運用に使用するなら、コードの意味を理解せずに運用開始するのは、
りんごさんも言われてますが、いろいろ危険です。
「クラスオブジェクト」というのが何か分かりませんが、
古いバックアップから作り直すか、
りんごさんの回答のようにサンプルファイルをダウンロードしなおして作り直すかですね。
テーブルが残っているなら、テーブルはそれを使えばいいでしょう。
どちらにしても定期的にバックアップを取るのは必須です。
ご回答ありがとうございます。
ご指摘のとおりです。今VBAを勉強中です。コードの方を優先して理解するように勉強いたします。
初歩的な質問に親身にお答えくださり大変ありがとうございます。
りんごさんのご指摘のように対応できるようになるまでは、バックアップで対処していきます。
クラスオブジェクトの件はバックアップファイルから復旧できました。
.Caption = .Caption & Foramt(rs!時刻, "hh:nn") & " " & rs!件名 & vbCrLf
は、どうやらエラーになるようです。
あっ、すみません。タイプミスしてました。
Foramt
→Format
hatena様
ご返事ありがとうございます。なかなかお聞きするのがハードルが高くなってしまいまして、
Formatは気づいてやってみたのですが、タグのところ F_Carendarが時間と件名の表示になって
カレンダーには一切表示がなくなってしまいました。
もしよろしければ、この件だけ教えて頂けないでしょうか?ゆくゆくは担当別に色を変える予定でおり、こちらは自力でと考えております。大変申し訳ございませんが教えて頂けないでしょうか?
私の間違えに気づきました。表示できました。大変もうしわけございませんでした。ありがとうございます。
以後、自分で研究いたします。レベルを考えわかる範疇で頑張ってみます。ありがとうございました。そして初歩的な質問で皆さんにご迷惑をおかけいたしました。
たびたびになりますが、ご教授ください。
略の条件によって色を変えるように指定したいのですが、
実行時エラー2465
指定した式で参照されている”関”フィールドが見つかりません。
と表示されてしまいます。
VBAは以下になります。できれば、時間、略、氏名を一緒に変えたいのですが
よろしくお願いいたします。
ublic Sub SetSchedule()
Dim i As Integer, rs As DAO.Recordset
For i = 1 To 42
Me("T" & i).Caption = ""
Next
Set rs = CurrentDb.OpenRecordset( _
"SELECT 日付, 時刻, 略, 氏名 FROM T予定 WHERE " &
"日付>#" & FirstDay & "# AND 日付<=#" & FirstDay + 42 & "# ORDER BY
時刻", _
dbOpenForwardOnly, dbReadOnly)
Do Until rs.EOF
With Me("T" & rs!日付 - FirstDay)
.Caption = .Caption & Format(rs!時刻, "hh:nn") & " " & rs!略 &
rs!氏名 & vbCrLf
If Me(rs!略).Value = "関" Then
Me(rs!略 & rs!氏名).ForeColor = 8388608
Else
Me(rs!略 & rs!氏名).ForeColor = 0
End If
End With
rs.MoveNext
Loop
rs.Close: Set rs = Nothing
End Sub
エラーメッセージが出たときに、[デバッグ]ボタンを押すとどの行が選択表示されますか。
hatena様
お手数をおかけいたします。
If Me(rs!略).Value = "関" Then
が選択されます。
If Me(rs!略).Value = "関" Then
を
If rs!略.Value = "関" Then
に変更してみてください。
あと、
Me(rs!略 & rs!氏名).ForeColor
もエラーになりそうです。
とのことですが、なんの色を変えたいのかよく考えてみてください。
hatena様
お手数をおかけいたします。
If rs!略.Value = "関" Then はデバッグできましたが、
Me(rs!略 & rs!氏名).ForeColor がエラーになりました。
Meを外したり、rs!略だけにしても同じです。
色を変えたいのは表示させている 時間と略と氏名の一行、一行を略の選択によって色を変えたいです。
ちら見回答であれですが、上手く出来ないなら、2つに分ければいいんじゃない。略の前景色は、ほにゃらら、氏名の前景色は、ほにゃらら、みたいに。
よく見たら、ラベルでしたね。ラベルの中身をカラフルに、色やフォントを変える文字列関数ってありましたっけ、誰かフォローして下さい。
視認性に拘るなら、略のラベルと氏名のラベルを同じように用意して最初から作りましょう。
視認性よりも可読性・保守性が大事だと思います。明日、明後日、来週、来月、来年、5年、10年後に見たときに、パッと理解・説明出来ないなら無意味ですよ。
ForeColorというのは「前景色」プロパティです。「前景色」プロパティはテキストボックスのプロパティです。
rs!略 & rs!氏名
は、レコードセットの「略」フィールド、「氏名」フィールドに入っているデータです。Me(rs!略 & rs!氏名)
としたら、そのデータと同じ名前のテキストボックスを探すことになりますが、そのような名前のテキストボックスはないですよね。まずは、それぞれのコードの意味を理解するように努力してください。最初は難しいと思いますが、それをしないとスキルアップはしません。
とりあえず、
With Me("T" & rs!日付 - FirstDay)
の部分でテキストボックスを指定しています。
With
の意味も調べてみてください。hatena様
ご指導ありがとうございます。ヒントを頂き、色付けできました。Withよく理解できました。
初心者で申し訳ございませんでした。
しかし、この方法ですと予定の案件がすべて色が変わってしまいました。考えてみれば当たり前でした。
これを一案件毎に条件毎に色を変えるのはむつかしいでしょうか?
調べて勉強しようとは思いますが、何かとっかかりのヒントを頂ければ幸いです。
まず、前回の回答の訂正から。
前回の回答でテキストボックスと書いていましたが、ラベルの間違いです。ラベルと置き換えて読んでください。
さて、本題です。
一つのラベル内のテキストの色(前景色)を部分的に変えることはできません。
行毎に変えたいなら、行数分のラベルに分割することになりますね。
Hatena様
色々調べているのですが、分割が解らす困っています。
ラベルを改行前に細工をする感じになりますか?
もう少しヒントいただけたら幸いです。
今回の件は課員からの要望が多いので形にさせてください。よろしくお願いいたします。
時刻9:00
案件1
担当者A
時刻17:00
案件2
担当者A
例えば、2分割、オブジェクトを2つ作成。
時刻9:00
案件1
担当者A
時刻17:00
案件2
担当者A
例えば、6分割、オブジェクトを6つ作成。
たぶん、こんな感じではないかと思います。
(日付別)予定番号と案件の条件をテーブルに作成。
※オブジェクトの数を超えて表示出来ないので、1日に何件までと上限を設ける事になりそう。
>> 30
業者に依頼したり、カレンダーアプリを探したりするほうが、幸せになれると思いますよ?