急遽、エクセルVBAを組んでくれと頼まれたのでわかる方、教えていただけますか?
開始日時(A行)と終了日時(B行)があり、
開始と終了の範囲でC以降日付になっており
指定の範囲内でセルの色が塗られるいうものなのですが
なにせ急ぎとVBAがほとんどわからないのでなるべくわかりやすく
教えていただけるとありがたいです。
ちなみにsheetにコードを記入するのとmoduleにコードを記入するのでは
どう違うのですか?わからないまでも一応、色が塗られるところまでは
できたのですがどうやってセルの時間を取得して範囲を指定すれば
良いのかなどがわかりませんどうかよろしくお願い致します。
下記は作成途中ですが・・・
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim row As Integer
Dim line As Integer
row = 5
line = 9
Set objR = Range("A1").Resize(1, 4).Offset(1, 2)
objR.Interior.ColorIndex = 8
End Sub
No.1
- 回答日時:
見当外れの回答でしたら申し訳ないですが、
「どこかのセルに期間を入力して、それに合致するセルに色をつけたい」
であれば、わざわざVBAでなくても条件付き書式でよいかと思います。
色をつけたい範囲全てを選択した状態で書式>条件付き書式で
「セルの値が」「次の値の間」で期間の開始と終了のセルの間
と設定すればよいかと思います。
差し支えなければ具体的なデータの例を挙げていただければ
より的確な回答がしやすいのですが。
参考URL:http://kokoro.kir.jp/excel/conditional_form.html
この回答への補足
すいません、返事が遅れました。
don9don9さん返事ありがとうございます。
エクセルもよくわからないのでVBAを使用しなくても出来るならそのほうが良いのですが・・・
例えば、予定表を作る際に開始日時に2008/4/10(A1)と入力し終了日時に2008/4/18(B1)と入力したらC1以降に1・2・3と日付のindexがあったとしたら10~18日までの間のセルの色(何色でも良いです)が変わるといったものを作成したいのです。ただ、土・日は色を塗りたくないので
休みの日は色を変更しないといった感じにしたいのです。
indexは月初めだけ4/1と表示されていてその他は2・3・4という感じになります。
こんな感じわかりますか?
どうかよろしく御願い致します。
No.2
- 回答日時:
こんなのではどうでしょうか?
C1に以下を設定します。
=IF($A1<>"",IF(MONTH(DATE(YEAR($A1),MONTH($A1),COLUMN(A1)))=MONTH($A1),DATE(YEAR($A1),MONTH($A1),COLUMN(A1)),""),"")
[書式][セル][セルの書式設定]の[表示形式]を、[ユーザー定義]で[種類]を m/d にします。
[書式][条件付き書式][条件付き書式の設定]で、[数式が][=(C1>=$A1)*(C1<=$B1)*(WEEKDAY(C1,2)<=5)] 書式:フォントの色[赤]
このC1を、C2:AG1(AGは最大31日なので)にコピーします。
これでA1とB1の日付の間の土日以外を赤にします。
で、1日以外は日だけなのでC2:AG1を選択して
[書式][セル][セルの書式設定]の[表示形式]を、[ユーザー定義]で[種類]を d にします。
C1:AG1を必要なだけ行方向にコピーすれば、行方向にも増やせます。
No.3
- 回答日時:
ANo.2に間違いがありました。
誤:このC1を、C2:AG1(AGは最大31日なので)にコピーします。
正:このC1を、D1:AG1(AGは最大31日なので)にコピーします。
誤:で、1日以外は日だけなのでC2:AG1を選択して
正:で、1日以外は日だけなのでD1:AG1を選択して
No.4
- 回答日時:
3列目以降の書式がはっきりしませんが、こんな感じでやってみてください。
Dim Y, X, T, D, S, E
For Y = 1 To Cells(1, 1).CurrentRegion.Rows.Count
S = Cells(Y, 1).Value '開始日
E = Cells(Y, 2).Value '終了日
For X = 3 To Cells(Y, 1).CurrentRegion.Columns.Count
T = Cells(Y, X).Text 'セル内容を表示されている形式で取得
If Not IsDate(T) Then '日付形式でなければ編集する
T = Year(S) & "/" & Month(S) & "/" & CStr(T)
End If
Select Case CDate(T) '日付に変換して範囲チェック
Case S To E '開始日~終了日の間
Select Case Weekday(D) '曜日を確かめる
Case 2 To 6 '月~金の間
'セル内部を指定した色で着色する
Cells(Y, X).Interior.Color = &HC0D0E0
End Select
End Select
Next
Next
End Sub
色は適当に変更してください。
また、Cells(Y, X).Interior.ColorIndex = 2 のような指定もできます。尚、当然ではありますが土日以外の休日は処理できません。
No.5ベストアンサー
- 回答日時:
No.1です。
予定表とのことですので、下記のようなものをイメージしました。
(全ての行に日付が入っているのではなく、タイトル行にのみ日付が入っている?)
そのつもりで回答致します。
A B C D E F ・・・
1 開始日 終了日 4/1 2 3 4 ・・・
2 2008/4/10 2008/4/20 (ここのセルに色をつけたい)
3 2008/4/14 2008/4/21 (ここのセルに色をつけたい)
・・・以下複数行
まず日付項目(C1から右)を全て日付形式で入力します。
これをセルの書式設定でユーザー定義サイズ"m/d"にすると「4/1」
"d"にすると「1」となります。
直接1と入力すると、Excelは1900/1/1と判断しますので
必ず日付形式で入力して、書式設定で表示を変えるようにします。
次に色をつけたい範囲(C2から右)を全て選択して「条件付き書式」で
「数式が」「=AND($A2<=C$1,$B2>=C$1,WEEKDAY(C$1,2)<=5)」の場合
「セルのパターンを(任意の色)」と設定します。
これでC列以降の1行目(タイトル行)が同じ行のA列の日付以上、
同じ行のB列の日付以下、土日以外である場合に該当セルに色がつきます。
土日以外の休み(祝祭日)まで対応となるとややこしくなりますので
とりあえずはこのくらいで。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 日付で矢印マクロ 4 2023/07/25 16:47
- Visual Basic(VBA) VBAについて教えてください 4 2022/11/10 12:44
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Visual Basic(VBA) 【VBA】Excelの特定範囲のセルを画像で保存したい 2 2023/01/25 13:06
- Excel(エクセル) VBA カゥントで数値の範囲を規制 1 2022/05/20 06:20
- Excel(エクセル) VBA 特定の列に入っているテキストをコピペ 2 2023/06/14 11:24
- Visual Basic(VBA) エクセルで、1つのセルで上書き足し算して セルの範囲を指定できますか? パソコン初心者です。 お時間 3 2023/07/05 06:13
- Visual Basic(VBA) エクセルVBA ダブルクリックしたら色反転を指定したセルのみにしたい 2 2022/04/06 12:52
- Visual Basic(VBA) 複数csvを横に追加していくマクロについて 2 2023/04/25 09:19
このQ&Aを見た人はこんなQ&Aも見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
Excel日程表:開始日~終了日を自動で色付けたい
その他(Microsoft Office)
-
エクセルで日付を入力したらカレンダーに色を塗る
Excel(エクセル)
-
日付を入力しカレンダーの該当する日に印をつけたい
Excel(エクセル)
-
-
4
別のシートから値を取得するとき
Visual Basic(VBA)
-
5
期間内のセル塗りつぶし
Excel(エクセル)
-
6
難問 VBA 今日の日付より前に対するイベント処理
Visual Basic(VBA)
-
7
VBAで特定の文字を探して隣のセルに色を付けたい
Excel(エクセル)
-
8
VBA ダブルクリックするたびにセルの色が順番に変わる
Excel(エクセル)
-
9
【vba】指定範囲の中に任意の文字があるときの条件分岐
Excel(エクセル)
-
10
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
11
マクロ 実行ボタンを押さずに常に実行
Excel(エクセル)
-
12
メッセージボックスのOKボタンをVBAでクリックさせたい
Visual Basic(VBA)
-
13
日付入力→指定のセルの色を塗りつぶし
Excel(エクセル)
-
14
Excel にて条件付き書式の色にさらに上塗りをしたいです。
Excel(エクセル)
-
15
Excel VBAでのWorksheet_Changeが動作しない原因
Excel(エクセル)
-
16
基準日以前のデータを範囲を指定して削除するVBA
Excel(エクセル)
-
17
特定の色のついたセルを削除
Visual Basic(VBA)
-
18
i=cells(Rows.Count, 1)とi=cells(Rows.Count, 2)の違い
Visual Basic(VBA)
-
19
エクセルのマクロをセルの値に応じて自動起動したい
Visual Basic(VBA)
-
20
EXCEL VBA で指定した範囲に入力があるかどうか?
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAで大量のファイルをシート名...
-
Vba 実数および実数タイプの変...
-
エクセルVBAについて
-
ユーザーフォームに別シートか...
-
VB.net(VB)で、フォームにExcel...
-
Excelのマクロについて教えてく...
-
エクセルの合計を自動で表示さ...
-
Excelのマクロでワードのテキス...
-
VBAの計算で@が出てしまう件
-
VBA listBoxから
-
エクセルのマクロについて教え...
-
Excelのマクロについて教えてく...
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
左右の表のキー位置を合わせたい
-
VBAの質問になります メッセー...
-
Excel マクロについての相談
-
VBA レジストリの値の読み方に...
-
2つのマクロでチェックボックス...
-
Vba SelStart、SelLen教えてく...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel VBA 定義されたプロージ...
-
Excel-VBAのmsgBox()の不思議
-
【VBA】マクロの入ったファイル...
-
VBA 複数条件の分岐処理の上手...
-
現在のブックを閉じないで、マ...
-
VBAで各列の"+"と"o"の合計数を...
-
VBAに詳しい方教えてください。
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
ユーザーフォームに別シートか...
-
エクセルのマクロについて教え...
-
ExcelVBA シート名を複数セルか...
-
エクセルのマクロについて教え...
-
VBA listBoxから
-
Excelのマクロについて教えてく...
-
エクセルのマクロについて教え...
おすすめ情報