小技集

トップ > 小技集 > 記事
小技集一覧へ
限定コンテンツ一覧へ



2024年1月26日【ID:0】

メンバー限定

【ExcelVBA】半角文字を自動で全角文字に変換

※IT予備メンバーに加入して連携すると、
一部の広告が非表示になります。


住所を入力する項目などに、以下のように全角文字と半角文字が混ざって入力されていることがあります。

このように、全角文字と半角文字が混ざっている状態は、以下のような問題点があります。

・一貫性がない:データを確認する際の誤解が生じる可能性がある
・データ処理が行いづらい:検索や並べ替え時に想定通りに出来なかったり、重複した内容を認識するのが大変になることがある
・外部システムとの互換性:システムによっては、全角文字のみしか入力を許可していないケースがあるため、そのままの貼り付けで入力ができなくなる

他にも、色んな理由が考えられますが、データを管理する場合は、ルールを統一して管理した方が良いです。
ただ、表を扱う全員が同じ認識でないと、ルールが守られない可能性があります。

ということで、こちらでは、入力した文字を強制的に全角文字に変換する方法について解説していきます。
※こちらで使用したファイルは、記事の最後にて配布しています。


1. 開発準備

こちらでは、VBAを活用して実現していきます。
特定のシートのセルに入力したタイミングに、自動で処理を行う場合は、シートモジュールを活用します。

まず初めに、[開発]タブの中の[Visual Basic]を選択します。

以下の画面が表示されましたら、該当するシートをダブルクリックし、表示された画面の上のリストから[Worksheet]を選択します。

次に、右側のリストから[Change]を選択します。
※「Option Explicit」が表示されていなくても問題ございません。

選択後に表示される[Worksheets_Change]というプロシージャを活用して実現していきます。

このプロシージャは、該当するシート上のセルを編集した後に実行される特殊なプロシージャ(イベントプロシージャ)になります。
引数の[Target]に、編集されたセルの情報が格納され、実行されます。

ExcelVBAレベル確認

2. コードの記述

まず以下のように入力します。

こちらの内容は、「編集したセルの値を全角文字に置換して、自身のセルに上書きする」という処理になっています。
「StrConv」という関数が、指定した文字を指定した形式に置換した値を返すというものになります。
「Target」に編集したセルの情報が格納されるため、「Target.Value」というのは、そのセルの中に入力されている値を指します。
「vbWide」というのが、「全角文字に変換する」という設定になります。

プログラムの世界の「=」は、一般的に、「右辺の値を左辺に代入する」という意味になります。
そのため、こちらの内容は、全角文字に置換された値を自身のセルに上書きしていることを意味します。

これだけで、セルに入力した値を自動で全角文字に置換することができます。

ただ、この内容ですと問題点があります。
それは、住所の項目以外でも適用されてしまう点と、複数のセルをコピペした場合など、複数のセルに同時に値を入力した場合にエラーになってしまう点です。

そのため、その問題点を解決する必要があります。
解決するには、以下のように修正します。


続きはIT予備メンバー限定です。

メンバー限定コンテンツになります。




IT予備メンバーページと連携することで内容を確認することができます。

メンバーとは


すでにメンバーの方は、
ログインして連携してから、こちらを更新すると閲覧できます。
※連携しても確認ができない場合は、少し時間を置いてご確認ください。

ログイン(新しいタブ)
※[ログイン]→[設定]→[IT予備-連携]で連携できます


パソコンで開く場合は、記事の最後に「リンクコピー」があるためご活用ください。

※IT予備メンバーに加入して連携すると、
一部の広告が非表示になります。


メンバー募集 メンバー募集





リンクの共有はこちらから行えます。

  リンクコピー    X Facebook はてなブックマーク Pocket
トップ > 小技集 > 記事
小技集一覧へ
限定コンテンツ一覧へ


- 人気の記事 -



- メンバー限定 [一覧] -



サイト累計閲覧数

7175314

有料動画講座
(買い切り)

Excel完全制覇


ちょっとした機能 便利ツール
【小技集】

【Excel】指定時間を自動で色付け「シフト表」

【Excel】マトリックス表からリスト形式の表に変換

【Excel】アルファベット(A~Z)を瞬時に入力

【Excel・Word】同じ図形を繰り返し作成する

【Excel】フリガナを瞬時に自動設定

【Excel】テーブルのスライサー

【Excel】表の途中に行を一瞬で挿入

【ExcelVBA】セルの値とシート見出しの色を連動

【ExcelVBA】予定表の各日付に1行を追加する

【Excel】重複なしでコード単位の番号を割り当てる

【ExcelVBA】相関性を保ったまま重複のない番号を自動入力

【Excel】FILTER関数で必要な項目のみを抽出

【Excel】「文字列の数字」が入力されたセルを色付け

【Excel】条件付き書式で休日を色付け

【Excel】指定したセルを別のセルの間に移動する

【Excel】「選択範囲内で中央」の本当の使い道

【Excel】表のデザインを自動で作成する方法 2選

【ExcelVBA】簡単なマウス操作のみで販売数を入力

【Excel】再利用するための瞬時に値を削除できる設定

【ExcelVBA】セルの変更履歴表を自動作成

【Excel】PHONETIC関数の結果を「ひらがな」にする

【Excel】完全一致のデータを自動で色付け

【Excel】上位N%に合格と表示する

【Excel】REPLACE関数とSUBSTITUTE関数の使い分け

【Excel】効率的に役割を割り当てる設定





一覧ページへ

トップ > 小技集 > 記事
小技集一覧へ
限定コンテンツ一覧へ