小技集

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



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
トップ > 小技集 > 記事
小技集一覧へ
限定コンテンツ一覧へ


- 人気の記事 -



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



サイト累計閲覧数

7420034

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

Excel完全制覇


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

【Excel】表の行列を入れ替えて表示する

【Excel】価格の下三桁を480円または980円にする

【Excel】簡易的な検索機能を数式のみで実現

【Excel】ピボットテーブルで詳細確認

【Excel】指定した範囲内で列幅を自動調整

【Excel】空白演算子でマトリックス表から値抽出

【Excel】スクロールバーを活用して行の色付け

【Excel】数値以外の連続した文字を入力

【Excel】各シートのタスク件数を求める

【Excel】数式のコピー時に書式をコピーしない

【Excel】シートの追加と削除を一瞬で行うショートカット

【Excel】直近3か月をスクロールバーで表示

【Excel】指定項目の先頭の値以外を薄くする

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

【Excel】指定期間の予定表を自動作成

【ExcelVBA】カテゴリー単位でセルを自動結合

【Excel】初回購入日と直近購入日を抽出

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

【Excel】表の入力漏れを防ぐ対策

【Excel】棒グラフの1位を自動で色付け

【Excel】FILTER関数による抽出データの元データに遷移するハイパーリンク

【Excel】入力した数値を0埋め4桁にする

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

【ExcelVBA】自作関数(ユーザー定義関数)が自動更新しない

【ExcelVBA】クリック操作だけで数量を入力





一覧ページへ

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