エクセルVBAでチェックボックスのONOFFでボタン表示を変える方法

こんにちは~。「デザインもできるシステムエンジニア」のあつもり(@atumori17)です。今日も「時間クリエーター」としてノー残業をめざしますっ!

前回お伝えした「セル内の文字列を操作して全角文字を半角に一括変換する方法」に続いて、今回は「チェックボックスのONOFFでボタン表示を変える」テクニックをご紹介します。

エクセルVBAでセル内の文字列を操作して全角文字を半角に一括変換する方法
全角を半角への変換はASC関数、半角から全角への変換はJIS関数を使って、ワークシート内でもできるのですが、 毎回入力するのは面倒ですよね。VBAを使えば別のエクセルファイルでも使える汎用的なプログラムが作れるのでとっても便利ですよ。

なぜ今回チェックボックスを取り上げたのかというと「全角文字を半角」ボタンがあるなら「半角文字を全角」ボタンがあったら便利だな~と思ったからなんです。

もうひとつ別のボタンを作っても良かったんですけど、この先もっとボタンを増やして機能を追加していくつもりなので、ボタンが増えるのも見栄えが悪いと思ったんですね。

そこで思いついたのがチェックボックスを利用する方法。チェックボックスのONOFFで「全角→半角」「全角→半角」を切り替えることができれば見た目がすっきりすると思います。

ユーザーフォームにチェックボックスとラベルを追加する

前回使ったプログラムにチェックボックスを追加していきます。前回作った「一括変換.xls」を開きます。

UserForm1を開いて新たにチェックボックスを追加します。ツールボックスからチェックボックスをクリックした後に、ユーザーフォーム上の置きたい位置でドラッグします。

続いてラベルを作ります。さきほどと同じようにしてツールボックスでラベルをクリックしてからユーザーフォーム上の適当な位置でドラッグします。

ラベルを右クリックしてプロパティを開き、captionを「半角→全角」にします。

ラベルが「半角→全角」になりました。

チェックボックスがONOFFされたときの処理を追加する

チェックボックスをダブルクリックしてVisual Basic Editorを開きます。CheckBox1_Click()プロシージャの下に以下のコードを書きます。

CheckBox1.Value

CheckBox1.valueでチェックボックスの値を取得します。値がある場合はtrue、ない場合はfalseを返しますつまりチェックがONならtrue、OFFならfalseを返します。

ここではtrueの場合、ボタンを「半角→全角」にし、Falseの場合は、ボタンを「全角→半角」にしています。

前回作った「全角→半角」のソースコードの修正

今度は前回作った「全角→半角」のソースコードの一部を変更します。といっても大幅に変更するわけではありません。始めのほうに数行追加するだけです。

それではCommandButton1_Click()プロシージャ移ります。

変更前

変更後

チェックボックスのチェックがONならselConv変数に「vbWide」、OFFなら「vbNarrow」を入れています。

ここで一度selConv変数に変換の種類を入れていますが、実際に変換するのは下記のコードになります。

strConv(変換する文字、変換の種類)

変換の種類に先ほどselConv変数に入れた、「vbWide」または「vbNarrow」が入ります

修正したソースコード

修正したソースコードは以下になります。

アプリケーションの動作確認をする

ワークシート上の起動するボタンをクリックします。チェックボックスをクリックします。

ボタンの表示が「全角→半角」から「半角→全角」に変わりました。半角→全角ボタンをクリックします。

変換対象の列の上部をクリックします。OKボタンをクリックします。

半角文字が全角に変換されました。

もちろんチェックボックスのチェックを外せば、全角から半角の変換ができます。

まとめ

いかがでしたか?今回の内容をまとめます。

  • CheckBox1.valueでチェックボックスの値を取得できる
  • StrConv関数の引数にvbWideを指定すると半角から全角に文字列を変換できる

時短のおつまみ

今日のおつまみはコレです!

Altキー + Print Screen  アクティブウィンドウの画面キャプチャーを取る

メッセージボックスだけのキャプチャー画像を取るときなんかに便利ですっ。トリミングが必要ないぶん時短になりますねっ。

それではまた~。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする