Excelの表に入力していくときに、現在選択しているセルの色が変わって、Excelの操作に不慣れな人でも分かりやすくするイベントプログラムを作りました。
〇やりたいこと
会社でExcelを共有して使用していると、パソコンが苦手な人が使う場合があります。
Excelを使い慣れている人なら選択しているセルは黒線で囲われるので、慣れている人なら当然のごとく分かりますが、会社にはいろいろな人がいます。
分からない人もいます。
それでも業務を回せるようにしなくてはなりません。
今回、普段は現場の方で仕事をしていて、パソコンを使わない人が体を壊してしまい、しばらく内勤の仕事をすることとなりました。
Excelにデータを入力していく仕事をしてもらうのですが、Excelじたいあまりさわったことが無い人なので、入力業務を少しでも分かりやすくするために、表の中で現在選択しているセルの色が自動でかわるプログラムをつくることになりました。
表はサンプルなので適当です。
↓こんな感じ。
〇作ったコード
以下のコードを標準モジュールではなく、ワークシートモジュールに入力すると表の中で選択している部分の色が変わり、表以外では変わりません。
〇コードの解説
今回はワークシート内で、自動で動いてほしいのでイベントを使用しました。
ワークシートが変わるたびに起動するのでWorksheet_SelectionChangeイベントを使っています。
//プログラムのタイトルです。これでワークシートイベントを指定でています。
Private Sub Worksheet_SelectionChange(ByVal
Target As Range)
//表の色をリセットするのに、表の範囲を「色なし」にしています。
Range("c4:h34").Interior.ColorIndex
= 0
//表の範囲である4行目から34行目、2列目から8列目を選んだとき
If (Target.Row >= 4 And Target.Row <=
34) And (Target.Column >= 2 And Target.Column <= 8) Then
//現在のセルの色をカラーインデックス34番にせよ
ActiveCell.Interior.ColorIndex = 34
//if文終わり
End If
//プログラム終わり
End Sub
〇補足
カラーインデックスは0から56番まであり、0番は「色なし」です。
カラー番号は下記の図の通りになっています。
下のコードは上記の図のようなカラーインデックスの一覧を作ってくれるコードです。
2列目のセルに1から56番までのカラーインデックスの番号とそれに対応した色が付きます。
また、Excelに不慣れな人が入力業務をすると、間違えて、まさかこんなところに入力する?となるかもしれません。
そんなときは、上記のコードに下のコードを付け加えると・・・
If (Target.Row < 4 Or Target.Row >
34) Or (Target.Column < 2 Or Target.Column > 8) Then
MsgBox "入力の範囲外です"
Range("c5").Select
こんな感じで、入力箇所以外のセルを選択すると、アラートが表示されて、セルC5に強制的に戻されます。
なので・・・
コードを変更すると・・・
となります。
入力して欲しい表のセルを選択するとセルの色が変わり、それ以外のセルを選択するとアラートが表示されて、規程のセルに戻されます。
入力箇所の間違い防止になります。
〇まとめ
会社でExcelを共有で使っていると、その使用者のレベルはまちまちです。
しかし業務を進めていく以上、皆が分かりやすくすることにデメリットはありません。
そういったときは、ワークシートイベントを使うと便利です。
すこしのVBAのコードを書くだけで、入力業務の間違い防止に役立ちます。
0 件のコメント:
コメントを投稿