<追記>
方眼紙上のマス目に文字がバラバラに入っているシートから、範囲指定して一発で連結した文字列を取り出す関数も作ってみました。サンプルファイルもダウンロードできます。
http://excelution.net/a-function-that-concatenates-all-characters-in-selected-range/

役所の「神エクセル」が話題になっていますね。

私は仕事で毎日のようにエクセルを使っていますが、通常機能からマクロまで、必要に応じて最も楽に目的を達成すべく、どの機能を使うか考えながらやっています。

そういった”自称”プロの事務屋の観点からぜひいわせていただきたいことがあります。

エクセルの標準機能をいちいちマクロで再開発するな!
それもうあるよ!!

少し前ですが、冒頭の河野太郎さんのツイートが拡散されていたので実は私も読んでいました。
お役所が作る、いわゆる「エクセル方眼紙」とか「神エクセル(ネ申Excel)」ですね。

で、今夜は週末なので酔っぱらってしまったし、もう寝ようとして布団に入ったところ、下記のようなツイートと記事を読んでしまったのでたまらず起き上がってきてこれを書いています。眠い。

スポンサーリンク

「外資系投資銀行マン」の熊野整さんはこの問題をレイアウトによって解決する方法を提案しています。

そもそもの発端となっているのは下記のツイートのようです。
お役所の申請書エクセルは本当にもう、あきれてしまいますね。1セルに1文字って・・・。

私は外資系投資銀行マンと違って国内企業のコテコテの事務屋ですので、そういった視点から、もう少しこれを読んでいただいている皆さんに身近な方法で解決してみようと思います。

今回、マクロは必要ありません。

まずはオリジナルの神エクセル。
神エクセル

このメッセージを出すのにこんなにたくさんのVBAコードを書いています。ほんとお疲れ様です。。。
神エクセルのVBAコード

で、私ならこれで済ませます。
エクセルの入力規則機能でエラーチェックと説明文表示

今回やったのは、

  • セルの結合
  • 入力規則の設定
    • 文字数制限
    • 入力時のメッセージ
    • エラーメッセージ
    • 日本語変換モードの自動切換え
      • 全角カタカナにしてあげる新設設計

これだけです。全部標準機能で設定するだけ。
プログラムは1行も書いていません。

ではどうやって設定したのかご覧ください。
(セルの結合は皆さんご存知だと思いますので省略します。)

マクロを使わずデータ入力の補助をする方法

まず「データの入力規則」を設定するダイヤログボックスを開きましょう。
エクセル画面の上部にある「データ」タブの中にある「データの入力規則」をクリックします。
データの入力規則ダイヤログボックスを開く

次に、「設定」タブの内容を以下のようにして、入力可能な文字数の上限を設定します。
入力規則で文字数制限

「入力時メッセージ」のタブを以下のようにしてみましょう。
こうすることでセルを選択したときに入力の邪魔にならないよう説明文を表示できます。
入力時の説明文を設定

「エラーメッセージ」のタブを以下のように設定すると、入力規則に反した入力があったときに警告したり拒否することができます。
入力規則に反した場合にエラーメッセージを表示する

最後に、「日本語入力」のタブでIMEの変換モードを自動変更してあげましょう。
ガチガチのプログラマーにはこういう親切心が足りないんですよね。
入力規則機能でIMEの変換モードをコントロール

結果がこれです(先ほどお見せしたものです)。
エクセルの入力規則機能でエラーチェックと説明文表示

今日のExcelスキルアップ

いかがでしょうか。
エクセルにはもともとたくさんの便利な機能があるので、まずはそれを使ってみましょうというお話でした。

<まとめ>

  • 文字数制限はエクセル方眼紙じゃなく入力規則でやれ
  • 入力時の説明メッセージも入力規則でやれ
  • エラーメッセージや入力チェックも入力規則でやれ
  • ついでに日本語入力モードも変更してやれ(ユーザーのために最後まで気をつかえ)

以上、皆さんもはじめは軽い気持ちで試してみてくださいね。

Pocket