ここから本文です

VBA初心者です。 ご教授願いたく投稿致しました。 現在エクセルVBAを活用して...

aky********さん

2019/12/611:23:31

VBA初心者です。
ご教授願いたく投稿致しました。

現在エクセルVBAを活用して、勤務表を作成しています。

仕組みはセルに西暦を入力するとその年の勤務表が自動で配置されるようにファンクションプロシージャを使って作成しました。

ここまでは順調だったのですが、年末年始に「日」という勤務指定が入っていた場合にその「日」の文字を赤くフォントカラーを変更させるマクロを作成したのですが、ファンクションプロシージャが記載されている標準モジュールに入れ込むとVBAを実行した際に、「日」の文字を赤く表示変更させるマクロが動きません。

標準モジュール2に、「日」の文字を赤く表示させるマクロを入力し、標準モジュール1にてcallで呼び出すようにすると動くのですが、物凄く重くなってしまいエクセルファイル自体が閉じてしまうなどの不具合がでてしまいます。

以下のコードをファンクションプロシージャが入力されている標準モジュールに入れ込むにはどのような方法が最適なのでしょうか。

よろしくお願い致します。

Sub 年末年始()

If Range("AI29").Value = "日" Then
Range("AI29").Font.ColorIndex = 3
Else
Range("AI29").Font.ColorIndex = 1
End If

If Range("AI30").Value = "日" Then
Range("AI30").Font.ColorIndex = 3
Else
Range("AI30").Font.ColorIndex = 1
End If

If Range("AI31").Value = "日" Then
Range("AI31").Font.ColorIndex = 3
Else
Range("AI31").Font.ColorIndex = 1
End If

If Range("AI32").Value = "日" Then
Range("AI32").Font.ColorIndex = 3
Else
Range("AI32").Font.ColorIndex = 1
End If

If Range("AI33").Value = "日" Then
Range("AI33").Font.ColorIndex = 3
Else
Range("AI33").Font.ColorIndex = 1
End If

If Range("AJ29").Value = "日" Then
Range("AJ29").Font.ColorIndex = 3
Else
Range("AJ29").Font.ColorIndex = 1
End If

If Range("AJ30").Value = "日" Then
Range("AJ30").Font.ColorIndex = 3
Else
Range("AJ30").Font.ColorIndex = 1
End If

If Range("AJ31").Value = "日" Then
Range("AJ31").Font.ColorIndex = 3
Else
Range("AJ31").Font.ColorIndex = 1
End If

If Range("AJ32").Value = "日" Then
Range("AJ32").Font.ColorIndex = 3
Else
Range("AJ32").Font.ColorIndex = 1
End If

If Range("AJ33").Value = "日" Then
Range("AJ33").Font.ColorIndex = 3
Else
Range("AJ33").Font.ColorIndex = 1
End If

If Range("AK29").Value = "日" Then
Range("AK29").Font.ColorIndex = 3
Else
Range("AK29").Font.ColorIndex = 1
End If

If Range("AK30").Value = "日" Then
Range("AK30").Font.ColorIndex = 3
Else
Range("AK30").Font.ColorIndex = 1
End If

If Range("AK31").Value = "日" Then
Range("AK31").Font.ColorIndex = 3
Else
Range("AK31").Font.ColorIndex = 1
End If

If Range("AK32").Value = "日" Then
Range("AK32").Font.ColorIndex = 3
Else
Range("AK32").Font.ColorIndex = 1
End If

If Range("AK33").Value = "日" Then
Range("AK33").Font.ColorIndex = 3
Else
Range("AK33").Font.ColorIndex = 1
End If

End Sub

閲覧数:
147
回答数:
3
お礼:
100枚

違反報告

ベストアンサーに選ばれた回答

mil********さん

2019/12/612:55:53

実際はどのようにいれこんでみたのでしょうか?

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

この回答は投票によってベストアンサーに選ばれました!

ベストアンサー以外の回答

1〜2件/2件中

並び替え:回答日時の
新しい順
|古い順

hdu********さん

2019/12/614:51:15

その「日」が日付データをFormatして表示しているのであればValueじゃなくてTextで判断するべき。

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

プロフィール画像

カテゴリマスター

iru********さん

2019/12/612:40:51

条件付き書式で設定するのがよろしいかと。

あわせて知りたい

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる