Excel 月間予定表の休日セル全部に斜線罫線をいれるVBAマクロ

投稿日:


勤務シフトを組むための表があるとします。
そして、例えば、病院なら「定休日の木曜日と日曜日のセルに斜線を入れたい」とします。

↓ このように。


しかし、表は月はじめの1日から始まるのでスタート曜日は毎月かわり、修正が毎月必要になります。
なので、できるだけ簡単な操作で、いっぺんにまとめて罫線をひけるようにしたい。
というわけです。

その方法は、エクセルでVBA(Visual Basic for Applications)コードを書いてマクロを実行することが考えられます。
 ※マクロのコードは記事の最後のダウンロードボタンからダウンロード可能です。

それを、以下に説明していきます。


まず、エクセルを開いたまま、PCのキーボードの Alt + F11 を押して、VBAエディタ開きます。


[挿入(I)]メニューから[標準モジュール]を選択して新しいモジュールを追加します。


新しいモジュールにVBAコードを書いたり、別に書いたコードを貼り付けます。

定休日(木、日)のセルに斜線を入れるコードはこれ ↓


斜線を引く曜日を変えたい場合、上記コードの ”木” ”日” を他の曜日に書き換えればOKです。

あとはマクロを実行するだけ。
その仕方にはいくつかあり、次の1~4のどれか一つ操作すれば実行できます。

  1. コードのどこかにカーソルを置いてF5キーを押す
  2. エディタの[実行(R)]メニューから[マクロの実行]を選択し[実行(R)]ボタンを押す
  3. エディタのメニューバーの(再生ボタン)をクリックし[実行(R)]ボタンを押す
  4. エクセルの[表示]メニューから[マクロアイコン]を選択して、[マクロの表示]から[実行(R)]ボタンを押す


上図は、マクロモジュールを3つ(Module1~Module3)挿入しました。
Module1は、AddDiagonalBorders で、斜線の罫線をひきます
Module2は、AddPatternFill で、網掛け(点・背景白)にします
Module3は、ClearDiagonalBordersAndPatternFillで、斜線と網掛けを消去します

Module2を実行すると ↓ こうなります。


コードはこれ ↓


Module1とModule2を実行すると、 ↓ こうなります。


Module3を実行すると、斜線と網掛けが消えます。


コードはこれ ↓


ちなみに、Moduleを複数に分けずに、一つのModuleに3つのサブルーチンコード(Sub~End Sub)をまとめても、一つずつ個別にコードを実行できます。


上記の例から適用するセルの範囲を広げるには、列や行を指定する数字を書き換えます。

For col = 3 To 16

↑ この部分は、3列目(C列・1日)から16列目(P列・14日)を指定しているので、31日まで広げるのであれば、C~AGになるので

For col = 3 To 33

に書き換えます。

Set targetRange = ws.Range(ws.Cells(5, col), ws.Cells(11, col))

↑ この部分は、5行目~11行目の7行を指定しています。
20行に範囲を広げたいならば

Set targetRange = ws.Range(ws.Cells(5, col), ws.Cells(24, col))

に書き換えます。

右肩上がりの斜線を右肩下がりにしたいのなら、

(xlDiagonalUp)を(xlDiagonalDown)に

に書き換えます。

罫線の種類や太さは、LineStyle= と Weight= を組み合わせて、それぞれのコードを指定して設定します。


以上、エクセルのVBAマクロのひとつの活用方法を紹介しました。
この記事で「いままで全く分からなかったVBAの理解が一歩進んだ」と思っていただけたら嬉しいです。

まあ、欲しいという方はいないと思いますが、本記事Module1~Module3のVBAコードを書いたWordファイルをダウンロードできるようにしておきました。

パスワードは、KenUが大型自動二輪免許を取得した西暦年月日(数字8けた)です。
ヒント:ブログメニューのバイク関連 ⇒『ストーマでも、いきなり大型自動二輪免許とりました。』


【お願い】ファイルの再配布 (二次配布)やパスワードの公開はお控えください。
ただし、本記事のリンク、URL配布はOKです。


IKINARI LARCをもっと見る

購読すると最新の投稿がメールで送信されます。

コメントを残す