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

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

全10回の連載でエクセルのデータ編集に便利な機能を詰め込んだランチャーアプリを作っていきます。今回はその第3回目です。

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

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

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

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

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

レクタングル大336×280

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

前回使ったプログラムにチェックボックスを追加していきます。前回作った「一括変換.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  アクティブウィンドウの画面キャプチャーを取る

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

それではまた~。



[連載記事 全10回] エクセルVBAで文字列変換ツールを作る

全角半角の変換をしたり、空白行や改行を削除したり。データ編集に便利な機能を詰め込んだランチャーアプリを作っていきます。1つの記事で1機能ずつ追加していきますので、少しずつVBAを学びながら進めることができます。

  1. エクセルVBAでセル内の文字列に含まれる改行を一括で削除する方法
  2. エクセルVBAでセル内の文字列を操作して全角文字を半角に一括変換する方法
  3. エクセルVBAでチェックボックスのONOFFでボタン表示を変える方法 (本記事です)
  4. エクセルVBAでセル内文字列の前後の空白をまとめて一括で削除する方法
  5. エクセルVBAのReplace関数でセルの文字列内の空白をまとめて一括削除する
  6. エクセルVBAのCountA関数でシート内の空白行をまとめて一括で削除する方法
  7. エクセルVBAで空白行を削除しないでまとめて一括非表示で隠す方法
  8. エクセルVBAで条件付き書式を使わず1行おきに色を付ける方法
  9. エクセルVBAで集計や並び替えを使わず1行おきに空白行を一括で挿入する方法
  10. エクセルVBAで同じデータが切り替わる項目ごとに空白行を挿入する方法
レクタングル大336×280
レクタングル大336×280

シェアする

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

フォローする