小技集

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



2024年1月26日【ID:0】

メンバー限定

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


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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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


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

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




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

メンバーとは


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

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


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


メンバー募集
1分で読める小技集 1分で読める小技集





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

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


- 人気の記事 -



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



サイト累計閲覧数

3476251

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

Excel完全制覇


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

【Excel】住所を簡単に入力する方法

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

【Excel】特定の曜日の日付を入力できないようにする

【Excel・Googleスプレッドシート】セルの数式を瞬時に確認

【Excel】文字列を右詰めで1つ1つの枠に割り当てる

【ExcelVBA】ダブルクリックでデータを移動

【Excel】文字列を並べ替えた時の順番

【Excel】データの確認には画面分割

【Excel】セル内の特定の文字の数を求める

【Excel】電話番号の形式を瞬時に変換

【Excel】選択した範囲内の改行を一括削除

【Excel】セルを非表示にする際はグループ化

【Excel】ピボットテーブルの意外と知られていない小技3選

【Excel】VBAとOfficeスクリプトのコードを比較(対象行の削除)

【Excel】表の背景色を交互に変更する方法

【Excel】クリック操作で端のセルまで移動

【Excel】重複した値をマークする

【Excel】瞬時にコピーするショートカット

【Excel】特定のセルに値がある場合に行全体を色付け

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

【Excel】住所から都道府県のみを抽出

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

【Googleスプレッドシート】表の最終行を選択するリンク

【Excel】SORTBY関数で項目を好みの順番にする

【Excel】色んな数値の連番の入力方法





一覧ページへ

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