まえがき
作成したマクロを実行するときに[開発タブ]からしか実行できなければ、VBAを理解していない人が使う事ができません。また、VBAを理解していたとしても、毎回[開発タブ]を選んで実行するのは面倒です。
そのためにボタンがあります。ボタンを押す事で登録されているマクロを実行させる事ができます。本記事ではボタンについて、以下の内容を記載しています。
- ボタンの設置方法
- ボタンの色やデザインの変え方
ボタンだけの記事にしたかったのですが、記事としてのボリュームが少なすぎるのでVBAで改行コードを扱う方法も併せて記載します。関連性がある内容でまとめたかったのですが、最後にこの2つが初心者コンテンツとして余ったので、その他という事でご了承ください。
改行コードはコンピュータの進化と共に3種類のコードが存在します。今では使われないコードもありますが、理解していないとエラーなどの原因となるので、しっかり解説していきます。
ボタンの設置方法
基本的なボタンの設置としては、フォームコントロールからボタンを設置する方法となります。
開発タブをクリックします。
コントロールの項目から挿入をクリックします。
ボタン(フォームコントロール)をクリックします。
カーソルが十字マークになるので、ボタンを置きたいところの左上でクリックした、右下でもう一度クリックします。
マクロ登録のダイヤログが現れるので登録するマクロをクリックします。マクロ名の表示が変わったら[OK]ボタンをクリックします。
ボタンが表示されるので、ボタンを右クリックしてテキストの編集をクリックします。
好きな名前に変更します。
ボタンの色やデザインの変え方
実は上で紹介したボタンの色や形を変更することはできません。書式設定を見ても変更できるのはフォントの色と配置などの情報だけとなります。
ボタンのデザインを変えるには、ボタンを使わずに図形にマクロを登録する方法を使います。
挿入を選択します。
図形をクリックします。
図形を選びます。どの図形でもマクロを登録することはできますが、ボタンらしいものとして以下を選択します。
図形を右クリックで選択して、塗りつぶしをクリックします。
お好みに合わせて色、グラデーション、テクスチャを変更します。(例としてテクスチャを変更します。)
もう一度図形を右クリックして、次はテキストの編集をクリックして文字を入力します。
このテクスチャでは文字はほとんど見えないので、文字の色も変えてみます。
文字の左の方をドラッグして(クリックでおさえたまま)文字の右側で離すと文字のプロパティ画面が表示されます。文字を中寄にします。
文字色の選択のところで下矢印をクリックします。
赤色をクリックします。
ボタンの文字の色が赤色になりました。少し見やすくなりました。
ボタンを右クリックして、マクロの登録をクリックします。
使いたいマクロを選択します。
[OK]ボタンをクリックします。
オプションボタンの使い方
オプションボタンとは、次のようなどれかを選んだら、他のチェックは外れるような、択一で選択させる場合に使うフォームです。最後に理由を説明しますが、この機能は使わない方が良いかもしれません。
オプションボタンの設置
オプションボタンを使うにはまずは[開発]>[挿入]>[グループボックス]を選択します。
適当な範囲を選んだら、グループ名を右クリックしてテキストの編集をクリックします。
そのまま入力すると入力した文字+グループXとなってしまうので[Shift]キー+➡ボタンで端まで選択してグループ名を黒塗りで反転させてから、上書きでグループ名を入力します。入力した文字が見えない場合などがあり、少し癖があります。
[挿入]>[オプションボタン]でオプションボタンを選択します。
先ほど作ったグループ枠内に入れます。
オプションボタンを右クリックで選択して、コピーを選択します。
Ctrlキー+Vボタンで必要な数貼り付けて、オプションボタンを増やします。
グループ枠内で配置を整えます。この時点でグループ枠内のどらかのオプションを選択したら、他の●が消えるような動きをします。
オプションボタンをそれぞれ右クリックで選択してテキストの編集で表示されている文字を変えます。グループの時と同様にShiftキー+➡ボタンで全体を選択してから名前を修正します。
最後に背景を白塗りにします。白抜きにしたいところをドラッグして、右クリックしてからセルの書式設定をクリックします。
塗りつぶし>パターンの種類から左上の白色を選びます。
パターンの色を左上の白色を選んで、OKボタンをクリックします。
オプションボタンとマクロの連携方法
まずはオプションボタンの名前を確認します。オプションボタンを右クリックしてマクロの登録をクリックします。
マクロ名のところに表示されている[オプション17_Click]という文字からこのオプションボタンはオプション17である事がわかります。
あまり無い使い方ですが、このオプションボタンがチェックされた時にマクロを動作させるのであれば、対象のマクロを選択してOKを押します。
ここまで実施して頂いて、この説明をするのは心苦しいのですが、実はこの設定でできるユーザーフォームをマクロと連携させる方法は、これ以外の方法は見つかっておりません。(私が調べ切れていないだけの可能性もあるので、絶対ないとは断言しませんが、少なくともインターネット上に開示されてはいませんでした。)
実はよく説明されているユーザーフォームはここで使っていたユーザーフォームとは別物となります。
一般的に解説されているユーザーフォームは、マクロ画面から[挿入]>[ユーザーフォーム]で作成できるユーザーフォームで、こちらでは一般的に解説されている通り、プロパティウィンドウからオブジェクト名を確認して、それぞれマクロで使うオブジェクトとして利用できます。
簡単に説明するとポップアップウィンドウを自作するイメージです。詳しくは中級者向けで説明したいと思いますが、初心者は利用する事は無いと思いますので、ここでは割愛します。
その他の入力フォームについて
ボタンを設置する事で誰にでも使いやすいマクロにする事ができます。他の入力フォームと合わせて使いやすい位置にボタンを設置しましょう。
今回紹介したボタンも、リストも、標準で準備されている機能で代用できますので、無理にユーザーフォームの機能を使う必要はありません。
ボタンのデザインにこだわりたい時は、紹介した方法を活用してください。
VBAで改行コードを使う
改行コードはReplace関数で使ったり、Split関数で使ったり、文字を複数行表示させるのに利用します。
VBAで利用できる改行コードは、以下の3種類です。VBAで扱うコードなので頭に[vb]が付いて、キャレッジリターンは[Cr]、ラインフィードは[Lf]、両方を足したものが[CrLf]の意味となります。
- vbCr(キャレッジリターンとも言う)
- vbLf(ラインフィードとも言う)
- vbCrLf(Cr+Lf)
それぞれの特徴とまとめると以下のようになります
改行コード | Excelでの 改行 |
メッセージボックスでの改行 | 説明 |
vbCr | できない | できる | ・エラーの原因となるので空白などに置換する |
vbLf | できる | できる | ・Excelのセル内改行コード |
vbCrLf | できる | できる | ・vbCr+vbLfと同じ ・Windowsのメモ帳の改行コード |
vbCrの解説
[カーソルを左端の位置に移動する。復帰。]という意味を持ちます。MacOS 9以前で使われていましたが、今では[vbCr]単独で使われる事は少ないです。
サクラエディタで見るとこのように表示されます。
メッセージボックス内の改行は可能ですが、誤動作の原因にもなるので使わない方が無難です。テキストを扱う時は、[vbCr]が原因で想定通りの動作とならない事があるので、[vbCrLf]などに置換するなどの処理をした方が良いです。
vbLfの解説
[カーソルを次の行に移動する。改行。]という意味を持ちます。
サクラエディタで見るとこのように表示されます。
Excel内で手動で改行をした場合は[vbLf]が使われるので、置換する場合は[vbLf]を指定しましょう。
vbCrLfの解説
[カーソルを左端に移動して、次の行に移動する。復帰+改行]を意味持ちます。
サクラエディタなどで見るとこのように表示されます。
ウィンドウズのメモ帳などで改行すると、この改行コードが使われます。メモ帳などの改行コードを置換する場合などに指定しましょう。[vbLf]を足して[vbCr]を[vbCrLf]にする事もできます。