• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VBA スケジュール表作成_連想配列で祝日設定)

VBA スケジュール表作成_連想配列で祝日設定

このQ&Aのポイント
  • VBAを使用してExcelのスケジュール表を作成する際に、連想配列を使用して祝日の設定を行いたい。しかし、祝日の曜日のセルをグレー&赤文字にすることができず、解決方法を模索している。
  • VBAを使ってExcelのスケジュール表を作成する際に、祝日の曜日のセルをグレー&赤文字にしたい。連想配列を使って祝日を管理しているが、月日が2ケタの祝日に対してうまく動作しない問題が発生している。
  • VBAを利用してExcelのスケジュール表を作成しているが、祝日のセルがうまくグレー&赤文字にならない。連想配列で祝日を管理しており、月日が2ケタの祝日に対して問題が発生している。

質問者が選んだベストアンサー

  • ベストアンサー
  • kkkkkm
  • ベストアンサー率66% (1731/2601)
回答No.2

bufを日付として格納してください。 ElseIf Not myDic.Exists(CDate(buf)) Then '辞書にまだ登録されていなければ myDic.Add CDate(buf), CDate(buf) 'そのセルの値を連想配列に登録する。

6338-tm
質問者

お礼

kkkkkm様 ご回答ありがとうございます。 ご回答の通りに変更しましたら、希望通りになりました! マクロの完成に向けて頑張ります。 ありがとうございました。

6338-tm
質問者

補足

CD関数の事知らなかったので、自分メモとして、下記残させて頂きます。 すみません! CDate 関数は、指定した値を日付型 (Date) に変換。 文字列を日付型に変換したいときに使用。 CDate(値) 値を日付型 (Date) に変換。 引数「値」 文字列や数値を指定します。 戻り値の型 日付型 (Date)

その他の回答 (3)

  • kkkkkm
  • ベストアンサー率66% (1731/2601)
回答No.4

> object.Add key, item  ’←ここに追加? > myDic.Add CDate(buf), CDate(buf) 'その ごめんなさい説明不足でした。 Add メソッド (Dictionary オブジェクト)の構文が object.Add key, itemなので コードでは myDic.Add CDate(buf), CDate(buf) となります。 という事で、コードは最初の回答のままでお願いします。 あと、質問と関係ないところなのでまたもや蛇足なのですが maxRowとKeyの変数宣言がありませんでした。 ツール→オプションで変数宣言を強制する にしておいた方がいいかもしれません。 https://www.239-programing.com/excel-vba/basic/basic032.html

6338-tm
質問者

お礼

kkkkkm様 ご回答ありがとうございます。 そうだったんですね、承知致しました。 多々抜けているところを見直して頂いてありがとうございます。 変数宣言と強制宣言の設定を変えます。 必要なことを沢山押教えて下さりありがとうございました。

  • kkkkkm
  • ベストアンサー率66% (1731/2601)
回答No.3

No2の蛇足です。 myDic.Item(Key) keyをもとにItemを取り出しますので今回の場合Itemは同じものを指定してください。 object.Add key, item myDic.Add CDate(buf), CDate(buf) '

6338-tm
質問者

お礼

kkkkkm様 せっかく補足頂きましたのに、理解できず申し訳ありません。 つまりこういう事ですか? If buf = "" Then '空白セルではなく ElseIf Not myDic.Exists(CDate(buf)) Then '辞書にまだ登録されていなければ object.Add key, item  ’←ここに追加? myDic.Add CDate(buf), CDate(buf) 'そのセルの値を連想配列に登録する。 End If

  • unokwave
  • ベストアンサー率58% (966/1654)
回答No.1

myDic.Add buf, 1 を myDic.Add Replace(buf, "/0", "/"), 1 にして下さい。

6338-tm
質問者

お礼

unokwave様 ご回答頂きありがとうございます。 ご指摘のところを変更してみましたが、セルグレー赤文字にはなりませんでした。 申し訳ありません。

関連するQ&A

専門家に質問してみよう