小さな会社や個人では、アプリや専用ソフトを使って商品管理とかはコストが見合わず、エクセルで商品管理していませんか?
このエクセルによる商品管理でリストの中にある期限切れ商品が気づかずに放置されて困ったことありませんか?
エクセルファイルを開いたら自動的に通知させれば、簡単に解決しますよ!
方法は簡単で、エクセル関数とエクセルVBAを組み合わせて、ユーザーフォーム上に簡単なお知らせ機能を持たせるだけで完成しますので、作り方をご紹介します。
エクセル関数の設定
“とりっぷぼうる”サイト内で紹介しているフリーパスも、全てが通年販売だと一度掲載すればそのままでいいのですが、当然ながら期間限定フリーパスが圧倒的に多いです。
その為に期限切れになったら削除しないといけないので、サイト内で管理は難しいのでエクセルにリストを作成して管理しています。
見ての通り、実際にこのような単純なリストで管理しています。
それではまず始めにエクセル関数を使って、残り何日有効なのかが分かるようにしましょう。
TODAY関数で本日の日付を自動取得
今日の日付は当然ながら日々変わっていくので、わざわざ毎回手入力するなんて面倒です。
そこで、エクセルを開いたら今日の日付を自動的に取得して表示させる関数が「TODAY関数」です。
上記画像にTODAY関数はセルF2に記入しています。
このTODAY関数を私自身は様々なエクセルファイルで使用してるぐらい、使用頻度の高いエクセル関数と言ってもいいと思います。
しかも使い方もすごく簡単でセルF2にはこのように入力しているだけです。
=TODAY()
それでは次に、残り何日なのかが分かるように計算式を設定しましょう。
期限終了日から今日の日付を引いて残数表示
上記画像に計算式はD列に記入しています。
ごくごく普通の引き算なので、終了日から今日の日付を引くと残り日数が表示され、例えばセルD2には下記のように数式を入れると・・・
=C2-F1
となりますが、あまりにもこのままでは単純すぎて、C列が空欄(まだリストにデータが無い状態)だと、エラーになり#####と表示されてしまいます。
このままでは並べ替えなどができないので、空欄の時は「0」と表示されるようにIF関数を使いましょう。
=IF(C2=””,0,C2-F1)
これで、フリーパス(商品)が未登録の時は「0」となり、エラー表示が無くなり見た目もスッキリしますね。
この式をD列の3行目以降にも入力すれば完成ですが、ここでの場合は200行目まで入力してあれば、問題ないと思って入れてあります。
このIF関数はとても便利で条件に応じて結果を自由に変えることができるので、絶対にマスターしなくちゃいけないエクセル関数です。
エクセル関数での準備はこれでおしまいなので、残りは全てエクセルVBAで作業となります。
ワークシート上の見栄えなどの書式などは、ここでは省略します。
エクセルVBAの設定
ここで行うエクセルVBAを使わないで毎回の手作業であれば、特に必要が無くなってしまうのですが、エクセルVBAでの設定を行うと下記手順が全て自動化されますので、エクセルファイルを開いただけで完成します。
- リストの並べ替えが自動化され期限切れに近い順に表示されます
- 期限切れになったリスト見つけて文字色を赤字に変えて目立たせる
この2つの作業が一瞬で行われるのでとても便利なので、下記の手順で設定していきましょう。
並べ替えVBAコード
エクセルファイルを開くと同時に様々な作業を行うには、VBA画面のThisWorkbookに自動化させたい作業1,2の順番にコードを書いて行けば完成します。
今回は、分かりやすくするために最初に、作業1と作業2を別々に分けてご紹介して最後に1つにまとめたVBAコードをご紹介します。
まず最初に、並べ替えVBAコードを記述するとこにより商品リストの終了日が古い順(小さい)に並べ替えることができます。
先ほどご案内した通り、ここでは200行目までとします!
Private Sub Workbook_Open()
Range(“A2:C200”).Sort Key1:=Range(“C2”), Order1:=xlAscending
End Sub
- エクセルファイルを開いたら
- 範囲内(セルA2:C200)をC列の値が小さい順に並べ替える
- マクロ記録終了
このままでも、エクセルファイルを開くと自動的に期限切れに近くなってきた順に上から表示されるので、手動で並べ替えを行うよりは確実になると思います。
ただ、せっかくなので目立つように期限切れになった時には、文字色を赤字にして目立たせましょう。
参考までに、エクセルVBAでの並べ替え項目は3つまでとなっています。
期限切れリストを見つけたら赤文字
先ほど並べ替えを行うVBAコードを書いた次の行に、残日数(期限)が切れたら(マイナス表示になったら)文字色を赤に表示するというVBAコードを書き足します。
For i = 2 To 200
If Cells(i, 4) <= 0 Then
Cells(i, 4).Font.ColorIndex = 3
Else
Cells(i, 4).Font.ColorIndex = 1
End If
Next i
- 繰り返し処理の変数「i」を宣言して変数は2行目~200行目にする
- もしセル(i行目の4列目)が0よりも小さかったら(マイナス)
- セル(i行目の4列目)の文字色を色コード3にする(赤色)
- そうでなかったら(大きかったら)
- セル(i行目の4列目)の文字色を色コード1にする(黒色)
- IFステートメント終了
- 繰り返す(200行目まで)
このようにVBAコードを書くと、セルD2がマイナスなら赤文字、次にセルD3をチェック、次にセルD4をチェックと繰り返し200行目(セルD200)まで繰り返しチェックしてくれます。
完成したVBAコード
下記が1,2を組み合わせて完成したコードを、ThisWorkbookに書いています。
Private Sub Workbook_Open()
Range(“A2:C200”).Sort Key1:=Range(“C3”), Order1:=xlAscending
For i = 2 To 200
If Cells(i, 4) <= 0 Then
Cells(i, 4).Font.ColorIndex = 3
Else
Cells(i, 4).Font.ColorIndex = 1
End If
Next i
End Sub
いかがでしたか?そんなに難しくなかったでしょ。
VBAコードは自由にコピペして、自分なりにアレンジして使ってもらって構いませんよ。
関連記事
-
データの操作
Key4は使えないけど4つ以上項目の並べ替えをVBAコードでやる方法
エクセルVBAを使ってデータの並べ替えを行うのにSortメソッドを使うのですが、4つ目の条件までの並べ替えををVBAコードを使ってやってみたら、エラーになった経験あり… -
データの操作
エクセル関数とVBAを組み合わせて商品期限切れ通知を表示する方法
小さな会社や個人では、アプリや専用ソフトを使って商品管理とかはコストが見合わず、エクセルで商品管理していませんか? このエクセルによる商品管理でリストの中にあ… -
データの操作
エクセルVBAで指定範囲内のセルの値「0」を全て空欄に置き換える方法
エクセルで表を扱う時に数式エラーを防ぐ為に、空欄の代わりにIFERROR関数などで数字の「0」で代用していることありませんか? この代用している値を一瞬で空欄にできる… -
ユーザーフォーム
Excel-VBAタイマー機能で数秒後にユーザーフォームを表示させる方法
エクセルを使って成績などを入力して作成した成績表で、入力漏れがなかったかどうかなどをチェックするのに数秒間だけ指定したページや範囲を表示させたいと思ったこと… -
文字色・背景色
条件に一致したセルを繰り返し探してVBAで文字色を変える方法
表の中で特定の値を目立たせるために色を変更したいと思った事ありませんか? Excel-VBAを使えば、一瞬で見つけ出して目立つように色を変更することができるFont.ColorI… -
日付・時刻関数
エクセルで昭和・平成・令和を西暦に変換するフォームを作成方法
昭和●●年って西暦で何年?調べるの結構面倒だと思ったことありませんか? 令和の時代になり和暦を使わずに西暦を基本に使うようになっていますが、簡単に変換できるフォ… -
ラベル
VLOOKUPをVBAラベルを活用してデータ検索・修正をする方法
ラベル(Label)にVBAコードを記述する ボウリング成績表でも使っているユーザーフォームに配置した文字を表示するための「ラベル(Label)」にも、実はVBAコードを記述… -
データの操作
エクセルVBAで氏名・名前を姓と名で自動的に分割する簡単な方法
エクセルで表などを作成していると、並べ替えや振り分けなどのデータ処理が面倒だと思ったことはありませんか? データ処理に手間をかけていると仕事の作業効率が悪くな… -
エクセル関数
エクセル関数とVBAで和暦西暦対応カレンダー作成
エクセル関数を基本として作成し、ユーザーフォームで日付選択ができるようにすることで複雑なマクロが分からなくても、自由にカスタマイズして自分のエクセルに組み込…
紅葉スポット
-
旧碓氷峠見晴台へバスで旧軽井沢駅から紅葉展望へ滞在時間20分
軽井沢と言えば長野県ですが、旧碓氷峠見晴台は長野県と群馬県の県境に位置するのですが、群馬県の観光スポットというよりは、長野県ですね。 ここ旧碓氷峠見晴台からは… -
水戸偕楽園のもみじ谷ライトアップは無料で水戸駅からバスで行ける
水戸の偕楽園と言えば梅林が有名なので、訪れたことが1度はあるかもしれませんが、以外と言ったら失礼なのですが、もみじ谷と呼ばれる場所があり、約170本のもみじやか… -
那須高原・温泉神社へバスで那須塩原駅からパワースポットへ
栃木県内はもちろん関東エリアでも人気紅葉スポットとして取り上げられている那須岳の紅葉が終わりを迎える頃に、麓の那須温泉街で紅葉が始まります。 日帰り温泉も古く… -
十勝岳望岳台へ活火山の溶岩と山頂部の雪化粧と紅葉の三段紅葉絶景
北海道のほぼ真ん中に位置して旭岳・美瑛藤・上富良野岳などが一望でき、さらに旭川市街や富良野市街までも見ることができる絶景スポットです。 標高930mの十勝岳は9月… -
全長3㎞ミューズパークいちょう並木へ西武秩父駅からバスで行く
西武秩父駅や秩父駅からバスでも行くことができる秩父のテーマパークで、南口から北口までの約3㎞もの長さにイチョウの木が両サイドに植えられていて、紅葉の時期になる… -
ときわ路パスで行ける茨城県人気紅葉スポット
茨城県内の紅葉人気ランキング 関東地方で紅葉名所といえばなんといっても日光ですが、紅葉シーズンになると平日でもいろは坂は大渋滞なのに休日ともなると日光駅周辺か…