エクセル実践塾 > エクセル実践塾2013

ブックを開いたときの新規シート自動挿入を、1日1枚に制限したい

 

新規シートの名前に日付を加え、マクロ実行時にその存在の有無を確認するようにします

シートの命名は、Nameプロパティへの指定で行えます。

当日の日付はDate関数で取得でき、Day関数を使えば日にちだけを取り出せるので、それをNameプロパティに割り当てれば、シート名を日にちにできます。

Sheets.Add(before:=Sheets(1)).Name = Day(Date)

ブックを開くときに、この日にちを照らし合わせるようにすれば、その日に新規シートを挿入済みかどうかを確認でき、それに応じて処理を行えます。

Excel 2013/2010/2007

 

Sheets.Add(before:=Sheets(1)).Name = Day(Date)

@ThisWorkbookのOpenプロシージャに、左のような1文を記述すれば、ブックを開いたときに、日にち名の新規シートを先頭に挿入できる

Sheets(1).Name <> Format(Date, "d")

Aシート名と日にちとの照らし合わせには、Format関数を使う

シートの名前は文字列なので、照らし合わせに用いる日にちも、Format関数で文字列にする必要があります。

BIf文でFormat関数による照らし合わせを行い、同日のシートがないときにだけ新規シートを挿入するようにする

 

C1日に1度だけ、日にち名の新規シートが挿入されるようになる

 

関連する他のページ

マクロ有効ファイルって何?
マクロを含むブックは、マクロ有効ファイル(マクロ有効ブック)として保存しなければ、マクロが失われてしまいます

マクロのコードを、見た目にわかりやすく、簡潔に記述したい
With ステートメントを使えば、作業の対象となるオブジェクトの記述が1回で済みます

どのブックからでも利用できるマクロを作りたい
「個人用マクロブック」に登録すれば、どのブックからでもそのマクロを実行できるようになります

100行程度の表で、5行おきに、新しい行を挿入したい
あまり大きくない表でのパターン化された処理なら、一定の手順をマクロ記録すると便利です

B2セルに入力してあるデータを、そのシートの名前にしたい
シートの名前は、Worksheet.Name プロパティで変えることができます

編集中のブックを、現在のフォルダとは別のフォルダにも、すばやく保存したい
手間のかかる操作は、マクロ化すれば、簡単に処理できるようになります

ブックにたくさんのシートがあり、それぞれのB2セルに入力してあるデータを、それぞれのシートの名前にしたい
For Each...Next ステートメントを使えば、編集中のブックに含まれるすべてのシートを対象にして、同じ処理を実行することができます

ブックを閉じるときに、マクロを自動的に実行したい
そのブックのWorkbook.BeforeClose イベントに、マクロを実行するコードを記述します

マクロを右クリックで実行したい
Worksheet_BeforeRightClickイベントのプロシージャにマクロを記述すると、指定シートを右クリックしたときにそのマクロが実行されます

表の見栄えを良くしたい
「テーブルとして書式設定」を使って、表をテーブルに変えるのが簡単です

計算結果の○時○分を、○.○時間に直したい
24を乗算すると、時刻表示が時間表示になります

時間数を数値で求めたい
1時間を表わす"1:00"で、時間数を割ります