小技集

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



2024年1月26日【ID:0】

メンバー限定

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

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


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

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

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

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

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


1. 開発準備

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

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

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

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

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

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


2. コードの記述

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

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

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

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

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

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


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

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




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

メンバーとは


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

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


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

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


小技集-電子書籍販売ページ 小技集-電子書籍販売ページ
メンバー募集 メンバー募集






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

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


- 人気の記事 -



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



サイト累計閲覧数

8023469

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

Excel完全制覇


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

【Excel】文字列の数字を一括で数値にする

【Excel】数式の法則性から間違いを見つける

【Excel】特定の条件を満たしたときにメッセージを表示

【Excel】Python in Excelでクロス表を1行1データに変換

【Excel】選択している行のデータを縦向きに抽出

【Excel】VLOOKUPで空白が「0」と表示されてしまう問題を一瞬で解決

【Excel】SWITCH関数で「その他」を表現

【Excel】フィルターで瞬時に絞り込むショートカット

【Excel】キーボードのみでフィルター操作

【Excel】在庫数が指定値未満の場合に自動色付け

【Excel】表の入力必須項目を自動色付け(入力後は解除)

【Excel】隣接したセルの書式を自動反映させない

【Excel】項目に合わせて自動入力切替

【Excel】セルの値に対しアイコンを表示

【Excel】数式の引数で効率的に複数範囲選択

【ExcelVBA】選択セルの行の高さを自動調整

【Excel】自動入力が邪魔?一瞬で無効にする方法

【Excel】覚えるべき「日付を求める関数」2選

【Excel】VLOOKUP関数で項目名から値を抽出

【ExcelVBA】ON・OFFボタンを開発

【Excel】点数を5段階の星マーク(★)で表示する

【ExcelVBA】今月のシートのみを瞬時に表示

【Excel】自由入力もできるドロップダウンリスト

【ExcelVBA】チェックしたら行が自動で非表示になる表

【Excel】連動したドロップダウンリスト





一覧ページへ

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