質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Q&A

解決済

2回答

786閲覧

vbaで半角文字の混在チェックをして該当箇所のセル番地を別シートに反映させたい

buonasera8

総合スコア5

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

0グッド

0クリップ

投稿2020/09/07 18:18

前提・実現したいこと

csv顧客データベースのエラーチェックツールをvbaで作ろうとしています。

aというシートのP2セルから順に住所が記載されていますが、全て全角文字で入力しなければならないというルールがあり、半角文字が混在している場合はbというシートへ半角混在該当セルのセル番地を隣のシートbのA2セルから下に反映させたいです。

For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row

If a.Cells(i, 16) = StrConv(a.Cells(i, 16), vbNarrow) Then

b.Activate

Cells(y, 1) = i & "に半角が混在してます。"

End If

a.Activate

Next i

End Sub

というソースを書きましたが、aシートP2セル以下全てのセル番地がbシートa2セル以下に反映されてしまいます。

根本的に間違えているという感触はあるのですか当方初心者のため誤りを把握することが出来ませんどうか的確なアドバイスをお願い出来ればと思います。

宜しくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

vba

1If a.Cells(i, 16) = StrConv(a.Cells(i, 16), vbNarrow) Then

の箇所を

vba

1If StrComp(a.Cells(i, 16), StrConv(a.Cells(i, 16), vbWide), vbBinaryCompare) <> 0 Then

としては、いかがでしょうか。

投稿2020/09/07 19:05

kitasue

総合スコア314

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

buonasera8

2020/09/07 20:36

ご指摘反映しましたら解決しました!ありがとうございます。助かりました!
guest

0

a, bはシート名であればsheets("a"). sheets("b") と入力しないとエラーになると思います。

投稿2020/09/08 03:40

Taka1108

総合スコア32

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問