
いたちめです。
EXCEL(エクセル)のお話です。
「マクロ」なんて耳にすると、何か知らないけど悪いイメージがあります。
コンピューターウイルスのもとでしょ?となります。
VBA(Visual Basic for Applications)なんて耳にするとなにそれ?となります。
かくいう僕もそうでした。
使える関数はSUMただ一つ。
今回は僕がVBAを利用してデータベースを作れるまでになった経緯を紹介します。
きっかけは一冊の参考書を紹介してくれた同僚
僕が務める会社はISOを取得しています。
その関係で様式があるものの、各人が好き勝手にカスタマイズしており
事務手続きは面倒くさいばかり。再び統一して欲しいという些細な依頼が入りました。
特に何も考えずセルロックとタブロックをかけただけのエクセルの様式を作ったところ
同僚が折角だからデータベース化させよう!と持ちかけてきたわけです。
また、その同僚からおすすめされた一冊の参考書。
持っているから貸そうか?と聞かれましたが少し興味が湧いていたこともあり購入。
これが僕のエクセルレベルを少しだけ底上げしたのです。
おすすめされた参考書↓
やさしくわかるExcelVBAプログラミング 第5版 (Excel徹底活用シリーズ)
文系の僕がVBAを覚えて業務改善できた理由
僕の興味が完全に失われてしまうまでの約8か月間。
そのうち実際にVBAにコードを入力していた約4か月間。
関数といえばSUM。エクセルといえばSUM。
そんなレベルの文系の僕がデータベースを作るまでに至ったのですが
これを何も知らない会社の他同僚に云うと「絶対、ウソ」という反応が返ってきます。
では、どうやってそのレベルまで底上げしたのか?
その1・興味が続いていた
その2・「こんな感じのものを作りたい」とざっくりした設計図
その3・できるところから手を付けて、難しいところはとことん後回し
その4・出来ないものは、どう工夫すればできるかをよく考えた
この3つのうち特に重要なのは興味。
興味があるので、ざっくりした設計図からの創意工夫と試行錯誤が苦にならないんです。
「すごい」という感嘆の言葉も、心地良いわけです。
一応、今も別のプログラムを作っていますが、
全くやる気がないのでいつ完成することやらというレベル。
どれだけ「興味」が重要なことかよくわかると思います。
もし、どうしても覚えないといけない。
会社命令でやらされるなどなどでVBAを始める方。
標準モジュールにバーボンハウスのコピペを添付して、
リカバリやデバック、後任の方へのメッセージなどに書き換えましょう。
そして「ユーザーフォーム」を作ることから始めましょう。
バーボンハウス
超巨大掲示板の古いネタですね。どうせ、VBAのプロパティにも保護をかけるでしょうから、保護を解除しない限り第三者に見られません。自己満足ですが、それ、大事。
やあ (´・ω・`)
ようこそ、バーボンハウスへ。
このテキーラはサービスだから、まず飲んで落ち着いて欲しい。うん、「また」なんだ。済まない。
仏の顔もって言うしね、謝って許してもらおうとも思っていない。
でも、このスレタイを見たとき、君は、きっと言葉では言い表せない
「ときめき」みたいなものを感じてくれたと思う。
殺伐とした世の中で、そういう気持ちを忘れないで欲しい、そう思って
このスレを立てたんだ。じゃあ、注文を聞こうか。
一から参考書を読むより必要なところをピックアップ。
僕の同僚がおすすめした参考書を買われた方は別として、既に持たれている方
それはキャプチャ毎に分かれていますか?
インデックスも主要なものはありますか?
問題なければそのままどうぞ☆
VBAを実際に作るために買われた参考書。
一ページ目から順序よく読むなんてお行儀のよいことはしません。
それ、教科書、違う。参考書。
とカタコトの言葉でもいいので自分に言い聞かせて下さい。
まぁ、導入部やらご挨拶は別ですよ?
ユーザーフォームだよ☆全員集合!
早速ですが、ユーザーフォームを作りましょう。
内容はなんでもいいです。
メッセージボックスでもいいですし、入力用のフォームや案内でも。
なんでも結構です。
何作っていいかわからない方は例題をどうぞ。
一番簡単なメッセージボックスを作成
- ラベルを選択し、「マクロ、始めまーす!」と入力
- ユーザーフォームの色を別の色に変更
- ラベルの下にコマンドボタンを設置
- ③のコマンドボタンを「OK」に変更
- 「OK」を押すとユーザーフォームを閉じる様にする
楽しいユーザーフォームを作ってみよう
- AAをユーザーフォームにコピぺ
- ①とは別のユーザーフォームに別のAAをコピペ
- チェックボックスで「次から表示しない」をAAの下に表示させる
- コマンドボタンで「実行」と「取消」を設置
- ⑤の「実行」の字の色を青色に、「取消」の字の色を赤色に変更
- ⑤の実行を押すと②の別ユーザーフォームを表示させる
- ③のチェックボックスがチェックされたときにB2セルに×印をつける
- ⑥で表示されたユーザーフォームの表示時間を5秒にする
- ⑧のユーザーフォームの時間を経過した後にエクセルを保存して終了する
実用性のあるユーザーフォームを作ってみよう。
- ユーザーフォームの名前を足し算に変更
- ユーザーフォーム内のすべてのフォントをHG丸ゴシックM-PROに変更
- ラベルで数値①と数値②と合計を記載
- ③のラベルの横にテキストボックスを配置
- コマンドボタンを2つ「実行」と「取消」を設置
- ⑤の「実行」の字の色を青色に、「取消」の字の色を赤色に変更
- ③のラベルの見た目をテキストボックスになる様に変更
- ④のテキストボックスのボックス内表示を右寄せ
- ④のテキストボックスをどちらか一つでも入力すると合計を自動表示
- ⑤「実行」を押すとA1のセルに合計した数値、B1に数式、C1に消費税込の数値を表示させる。「取消」を押すとユーザーフォームを閉じる
一応、レベルごとになっていると思いますが、わからないところをその手に持った参考書や目の前にあるパソコンで調べましょう☆
僕がお世話になったお勧めのVBAサイト : オフィス田中
一応、僕の作った分です。もちろん、最適解ではないので参考までにどうぞ☆
クリックするとダウンロードが始まります。