どこの企業、家にもパソコンがある今の時代、誰でもパソコンに詳しいと思いきや、実はそうでもありません。

ゲームをするのも、調べ物をするのも、コミュニケーションをとるのも、今の時代は全てスマホで賄えるからです。

そのため、今でも中小企業や学校等でパソコンに強い方は重宝されます。

特にオフィス(Excel、Word、PowerPoint等)が得意な方は、そのスキルを生かして、業務効率のための様々な依頼がくることでしょう。

その期待に答えるべく、四苦八苦してExcelのソフトを作ったのは良いのですが…ここで大きな問題に当たります。

使用者は初心者だということです。

Excelに少しでも精通している方であれば、「行の挿入」や「セルのカットペースト」等が、システムを壊してしまう原因になってしまうことは分かると思いますが、それが分かるのはあくまでごく一部の方だけ。

ほとんどの方はそのようなことはわかりません。「行の挿入したらだめだよ」と言っても、それを守ってはくれません。

つまり、Excelのソフトを作成するときは、「誰が使用しても壊れないような」仕組みにしなければなりません

私がソフトを開発するなかで特に気をつけている点を5つを紹介し、その設定方法をお伝えしたいと思います。

シートの保護をかける

これは誰でもされていることかもしれませんね。ソフトを作る上での基本中の基本です。

ソフトを作成する際、絶対に必要になってくるのが「数式」です。

この数式、やっかいなのは、見た目上は数式かどうかわからないところでしょう。

もちろん数式バーを見れば、数式か値かはわかるのですが、ユーザーはそんなところまでみません。

そのため、この数式を変更できないようにするために、シートの保護をする必要があります。

編集しても良いセルのロックを外す

基本的に、セルのロックの初期設定は「ON」になっている状態です。

このままシートを保護してしまうと、全部のセルが編集不可となってしまいます。

そのため、数式が入っていない編集しても良いセルに関しては、以下の方法でロックを外してあげましょう。

  • ① セルを右クリック
  • ② 「セルの書式設定」をクリック
  • ③ 「保護」タブをクリックし、「ロック」のチェックを外して「OK」をクリック

これでこのセルは、シートの保護後も編集できるようになります。

シートを保護する

保護すること自体は簡単で、以下の方法でできます。

  • ① リボンの「校閲」を選択する
  • ② 「シートの保護」をクリックする
  • ③ 「ロックされていないセル範囲の選択」のみチェックをいれて他は外して「OK」をクリック

「ロックされたセル範囲の選択」はチェックをいれたままでも良いですが、おすすめしません。

理由は、「どこが入力できるところかがわからなくなる」からです。

ここはケースバイケースでやってみてもよいですね。

ちなみに、シートの保護を解除してまで編集しようとする方がいるのであれば「パスワード」もかけましょう。

※パスワードまで解析して編集する方がいる時は、もう開発はその方に任せましょう笑

VBAにもパスワードをかける

さて、ここからはVBAを使用する方向けですが、VBA部分もパスワードをかけて編集できないようにしておくことをおすすめします。

ちょっと詳しい方が「こうだろう」で勝手にVBAをいじって壊してしまうことがよくあるからです。

方法は以下をご参照ください。

  • ① VBEの左側のツリーの、対象のプロジェクトを右クリック
  • ② 「VBAProjectのプロパティ」をクリック
  • ③ 「保護」タブを選択し、「プロジェクトを表示用にロックする」にチェックをいれる
  • ④ パスワードを入力し「OK」をクリック

シートの非表示設定

2つ目はシートの非表示設定です。

シートが一つだけ、といった場合は不要ですが、ユーザには変更してほしくないデータを管理するシートが有る場合は、非表示にしておいたほうが無難です。

もちろん保護をかけるだけでも良いですが、シートがあると人はクリックしてみたくなるものです。

ユーザが見る必要がないものは非表示にしておきましょう。

方法は以下をご参照ください。

  • ① 非表示にしたいシートタブを右クリック
  • ② 「非表示」をクリック

また、再表示したい場合はシートタブを右クリック→再表示で表示できます。

私は原則非表示にして、「管理ボタン」といったボタンを作成し、クリックしてパスワード入力したら全部表示する、といった方法をとることが多いです。

表示するVBAが知りたい方は、コメント等でお問い合わせください。

上部のリボンエリアは非表示にする(VBA)

3つ目は上のリボンエリアを非表示にすることです。

リボンエリアとは、上の方にある色々な設定ができるところのことです。

ここは書式をかえたり保護解除できたり、とりあえずユーザにあまりいじってほしくないものが盛りだくさんの部分です。

基本的にExcelを開いた時に非表示にしたほうが良いでしょう。

リボンを非表示にするプログラムはこちら↓

Private Sub Workbook_Open()

Application.ExecuteExcel4Macro “SHOW.TOOLBAR(“”Ribbon””,False)” ‘リボン非表示

End Sub

これをThisWorkbookに記述することで、開いたと同時に非表示にすることができます。

ただし、自分が開発できなくなってしまうので、私はシートの非表示時と同様に、原則非表示にして、「管理ボタン」といったボタンを作成し、クリックしてパスワード入力したら表示する、といった方法をとることが多いです。

読み取り推奨設定をする

これはケースバイケースにはなりますが、データの変更は自分がしてユーザは閲覧のみ許可する場合基本的にデータの変更がないことが多い場合に設定すると良い項目となります。

読み取り推奨設定をし、書き込みで開く場合はパスワードを要求するようにすると、より安全です。

方法は以下をご参照ください。

  • ① 「名前をつけて保存」で表示されるダイアログの、「ツール」→「全般オプション」をクリックする
  • ② 書き込みパスワードを入力し、「OK」ボタンを押す
  • ③ 保存する

この手順を踏まえることで、Excelを開いた時に「読み取り」で開くか「パスワードを入力して書き込み」で開くかを選択できるようになります。

カット&ペーストを禁止する

数式が壊れる原因の一つとして、安易なカット&ペーストがあります。

数式の参照元のセルをカット、ペースト等した場合に、数式が入力されているセルから参照元のセルが見つからない状況(REFと表示されます)になってしまいます。

しかし、シートの保護ではカット&ペーストを禁止することはできません

そのため、VBAでカット&ペーストを禁止する処理が必要となります。

カット&ペーストを禁止するプログラムはこちら↓

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Application.CutCopyMode = xlCut Then
Application.CutCopyMode = False
End If

End Sub

この数式を、各Worksheetに記述することで、カット&ペーストを無効化することができます。

まとめ

今回は、作成したソフトを配布する際に気をつけるべき5つのことを紹介いたしました。

皆さんが会社のため、周囲の方々のために作ったソフトも、せっかく作ったのに壊れてしまうと、使う側も作る側も残念な気持ちになってしまいます。

使う側は何もわからないという意識を常にもって開発にあたりましょう。

作る側が安心して渡せるような、そして使う側が安心して使えるようなシステムの作成のため、是非意識してみてくださいね!

※追伸

ついにMicrosoftOffice2019が発売となりました。

MicrosoftOfficeはおよそ3年毎にリニューアルされていますので、次回は2022年あたりが予想されます。

購入するのであれば早めに購入して2022年まで使用したほうがよいでしょう。

↓永続版はこちら↓

Microsoft Excel 2019(最新 永続版)|オンラインコード版|Windows10/mac対応|PC2台

↓Office365はこちら↓

Microsoft Office 365 Solo (最新 1年版)|オンラインコード版|Win/Mac/iPad|インストール台数無制限