【VBAスタンダードに挑戦!】
本日の5分勉強の内容
********************************************************
データのクレンジング
・マクロが正常に動作するように、想定内の形式に変換すること
・マクロがエラーになる主な原因
1.コードの記述ミス
ー> スペルや構文を見直し修正する
2.ユーザーの操作ミス
-> 数値を入力すべきところを文字列を入力しないように設定したり、
説明文などを付ける
3.データの間違い
->マクロが動作できる形式に修正、
または実行前にエラーの箇所を特定して修正する
※クレンジング = Clensing・・・洗浄、浄化する
StrConv
・全角、半角を変換する
・StrConv(元の文字列, 変換する文字種)
StrConv(Range("A1"), vbWide)・・・セルA1 を全角に変換する
StrConv(Range("A1"), vbNarrow)・・・セルA1 を半角に変換する
・すべて半角(全角)に変換し元のデータと比較して、
同じであれば、そのセルはすべて半角(全角)である と判断できる
※Wide・・・幅が広い
Narrow・・・狭い
StrConv = Strings Convert(たぶん)
String・・・文字列、ひも、弦
Convert・・・変更、変換
選択したセルの列の2行目から最終行を全角(半角)に変換する
Sub Narrow_or_Wide()
Dim r As Long
Dim c As Long
Dim LastR As Long
Dim ans As Long 'answer・・・「返答」の略として使用
ans = MsgBox("正しい列を選択しましたか?", vbYesNo)
If ans = vbNo Then
End
End If
r = Selection.Row
c = Selection.Column
LastR = Cells(Rows.Count, c).End(xlUp).Row
For r = 2 To LastR
Cells(r, c) = StrConv(Cells(r, c), vbNarrodw)
'Cells(r, c) = StrConv(Cells(r, c), vbWide)
Next r
MsgBox "done"
End Sub
上記の書き方は、私が良くやる方法です。
操作したい行/列をシート上で選択しておいて、
その行/列に対してマクロを作成、実行する。
こうすると、
行/列を検索、判断するコードを記述する手間が省けます。
最初にマクロを実行したい行/列を選択したかどうかを確認する
メッセージを表示させてから、本体のマクロを実行させれば、
エラーとなる原因の「2.操作ミス」 を回避することができます。
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/