[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『背景色付け』(うっほい)
初めまして。エクセル初心者で調べながら作ってますが行き詰まってます。
どうかお助けください。
内容。年と月入力で自動でできるカレンダーシートが1つ(横カレンダー)。あとはシートが31個あり計32個のシートがあります。(カレンダーシート、1日〜31日シート)
1日〜31日のシートはすべて同じフォーマットで作成されております。
ここから本題なのですが、1日のシートA4に何かしらの入力があるとカレンダーシートのカレンダー1日(セル)に背景色をつけたいです。それを31日分作りたいです。
もしできるなら一個ずつ作るのではなく、vbaで一括して1日〜31日シートにそれができたら嬉しく思います。
説明不足もあると思いますが、よろしくお願いします。
< 使用 アプリ:365 proplus、使用 OS:Windows7 >
【仮定】
・シート名は1 2 3 4・・・
・着色セルはB1から右方向に1 2 3 4・・・・と続いており、このセルに着色する。
【着色】
B1〜AF1を選択して条件付き書式→新しいルール→数式を使用してry→数式に
=INDIRECT(B$1&"!$A$4")<>""
と入力して塗りつぶしするように設定
【シートコピー】
シート"0"を指定した年月の日数分コピーするマクロの例です。
既存の1〜31シートは削除されますのでご注意ください。
Sub シート複製() Dim Y As Long Dim M As Long Dim dt As Date Dim i As Long Dim Temp As Worksheet
Set Temp = Worksheets("0") Y = 2018 M = 9 dt = DateSerial(Y, M, 1) For i = 1 To DateAdd("m", 1, dt) - dt Application.DisplayAlerts = False On Error Resume Next Worksheets(CStr(i)).Delete On Error GoTo 0 Application.DisplayAlerts = True
Temp.Copy After:=Worksheets(Worksheets.Count) ActiveSheet.Name = CStr(i) Next End Sub
(にゅるん) 2018/09/17(月) 02:30
もう一つ質問ですが、alt+d+o(excel標準入力フォーム)をマクロ(コマンドボタン)設定しているのですが、そのシートに保護をかけるとコマンドボタンは機能するものの入力フォームの中にある新規、削除、戻るボタンが押せなくなり機能しなくなります。
シート保護をかけても入力フォームがちゃんと機能する方法あるでしょうか?
(うっほい) 2018/09/17(月) 03:59
(シートの保護を解除した状態で)
セルの書式設定の保護タブでロックのチェック(標準はON)をOFFにしてから
シートの保護をかけることで、必要な範囲のみ編集可能にできます。
ワークシート上での直接入力だけ禁止して、Alt+D+Oのフォームで入力できるようにする方法は
無いのではないかと思います。VBAで自前でフォームを作れば出来ますけどね。
シートの保護に関してはこちらとかで勉強してください。
http://www.excel.studio-kazu.jp/mag2/backnumber/mm20040803.html
(にゅるん) 2018/09/17(月) 09:43
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.