- ベストアンサー
VB6.0日付の色を変更できるカレンダーはありますか?
VB6SP6を利用しています。 MonthViewコントロール、MicrosoftCalendarコントロール と試してみたのですが、いろいろとヘルプを見てみたのですが、 どうやらこの二つのコントロールには、 カレンダー全体の背景やフォントの色を変更することはできても、 特定の日時のフォントや背景の色を変更することはできないようです。 カレンダーを表示して、祭日の部分のフォント色を変更したいのですが、 こういったことを実現するにはVB付属のコントロールでは不可能なのでしょうか? 不可能であればどういった解決手段が考えられるのでしょうか? 例えばカレンダーを自作するとなると、 一応うるう年の計算やツェラーの公式は知っていて、変数の中にならカレンダーを 表現できますが、いざフォーム上に表現とすると、 Labelコントロールを31個用意して強引にやることしか思いつきません。 今日は何度もここで質問してしまい本当に恐縮です。 朝からずっとVBの練習をしているのですが、わからないことが次から次へと 出てきます。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
それらのことMS純正のコントロールでは無理ですね。 実際の開発現場でやるとするとサードパーティのコントロール(例えばGrapeCity社のInputMan内にあるimCalendarコントロール等)を使用するか、自分でVCなどを使ってOCXを作成するか……ですが。 勉強中との事ですのでそれは無理ですよね。 そうすると、ノーマルのVBだけで実現させるなら、おっしゃる通りLableやTextBox等を使用して疑似的に作るか、Imageコントロール中にグラフィックとして書き出すしかないでしょう。 まぁImageコントロール中に書き出すのは、けっこう大変だし、日付を選択したりはできないので、LabelやTextbox等を使うのが現実的だと思われます。 コントロール配列にして、Labelを7×5列並べるのが現実的かなと思います。 なお日付を扱うなら、うるう年の計算などするのも面倒くさいので、Date変数を使うのが楽ちんです。Date,Now,Time,DateAdd,DateDiffといった関数を使えば、簡単に日付計算が出来ます。
その他の回答 (1)
- fortranxp
- ベストアンサー率26% (181/684)
>Labelコントロールを31個用意して強引にやることし>か思いつきません。 私もそう思います。 Labelコントロールは無論コントロール配列ですね。 7X5=35個必要になりそう。
お礼
コントロール配列の概念を理解するのにちょっと手間取りましたが、なんとか実現できました。 これから日付の色変更の実装に入ります。 回答ありがとうございました。
お礼
回答どうもありがとうございました。 OCXについてもそのうち勉強したいなとは思っています。 (というかいいかげん.netに移るべきなのでしょうが) 徹夜して何とかLabelコントロールを並べて擬似カレンダーぽいものができました。 途中自分の脳みその悪さに壁に頭をぶつけるほどの大苦戦でした。 できたものを見てみるとぜんぜん複雑なことをしているわけではないのに。 おかげでツェラーの公式暗記しちゃいました。 提示してくださった関数群でももう一度組みなおしてみようと思います。