業務上の処理で困っていることがあります。お知恵をお貸し下さい
「メーカーからCVSファイルでデータが届く→それを読み込んで伝票発行」という作業を行っているのですが
住所等の番地やマンション名等(カナ)が全て全角で入力されている状態なのです。(同じ文字列に漢字や平仮名も混じっています)
伝票発行するソフトは規定文字数が少なめなのでこれをいちいち半角に直してから
読み込まないといけません。手作業になりますし、件数も多いので困っています
「選択した行(シート全体でも構いません)の文字列で半角に直せるものは半角に変換」というマクロを組むことは可能でしょうか?
初心者レベルですが何度かVBAを使ったことはあります
何卒よろしくお願い致します。
No.5ベストアンサー
- 回答日時:
列全体でやる場合は
変換した列を選択して(このマクロだと一つのセルを選択しても列全体が変換されてしまうので注意してください)↓を実行してください。なお連続した列は複数列選択でできますが(例:A,B,C,D列)A列,C列といった列を選択して実行というのは私の技術ではできませんでした。。
Sub test1()
Dim myRange As Range, myColumn As Integer, endRow As Integer
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
Set myRange = Selection
myColumn = Selection.Columns.Count
For i = 1 To myColumn
endRow = Cells(65536, Selection.Column).End(xlUp).Row
Cells(1, Selection.Column).Select
Do Until Selection.Row = endRow
If Selection = "" Then GoTo S1
Selection = StrConv(Selection.Value, vbNarrow)
S1:
ActiveCell.Offset(1, 0).Select
Loop
ActiveCell.Offset(0, 1).Select
Next i
myRange.Select
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
End Sub
とりあえず列全体でしたら↑を
選択セルのみでしたら↓をお使いください。
Sub test01()
Selection = StrConv(Selection.Value, vbNarrow)
End Sub
わがままを聞いてくださりありがとうございました!
シート全体の文字列を半角にしても構わない。ということだったので
このマクロを少し改造して業務を行いたいと思います。
本当にありがとうございます♪m(_ _;)m
No.4
- 回答日時:
すみません、No3ですが、説明不足です。
先程の回答だと『全ての文字列』を選択し、半角にする。という処理です。
数値も選択して半角にしたい場合は下記でお願いします(2→3になっただけですが…)
Sub test02()
Selection.SpecialCells(xlCellTypeConstants, 3).Select
Selection = StrConv(Selection.Value, vbNarrow)
End Sub
またご自身で選択したセルだけについて実行するのでしたら
Sub test03()
Selection = StrConv(Selection.Value, vbNarrow)
End Sub
です。
No.3
- 回答日時:
こんな感じでいかがでしょうか?
Sub test01()
Selection.SpecialCells(xlCellTypeConstants, 2).Select
Selection = StrConv(Selection.Value, vbNarrow)
End Sub
回答ありがとうございます!
頂いたコードを実行したら希望通りに半角になりました♪
ちなみにこれを行ではなくて列単位(複数選択できればうれしいです)で
処理を行うにはどのようなコードに変更したらよいでしょうか?
重ね重ねすみませんがよろしくお願い致します。
No.1
- 回答日時:
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・ハマっている「お菓子」を教えて!
- ・最近、いつ泣きましたか?
- ・夏が終わったと感じる瞬間って、どんな時?
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで二つの数字の小さい...
-
PowerPointで表の1つの列だけ...
-
エクセル(勝手に太字になる)
-
エクセルで最初のスペースまで...
-
エクセルの項目軸を左寄せにしたい
-
エクセルで文字が混じった数字...
-
Excelで半角の文字を含むセルを...
-
Excelの行、列の左方向シフト、...
-
エクセル 文字数 多い順 並...
-
エクセルの関数(日数の平均の...
-
EXCELで 一桁の数値を二桁に
-
VBAで文字列を数値に変換したい
-
エクセル 時間帯の重複の有無
-
Excel、市から登録している住所...
-
エクセルで、列の空欄に隣の列...
-
2つのエクセルのデータを同じよ...
-
VBA 連続行データを5行ずつ隣の...
-
エクセルの並び変えで、空白セ...
-
文字列に数字を含むセルを調べたい
-
「B列が日曜の場合」C列に/...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで二つの数字の小さい...
-
PowerPointで表の1つの列だけ...
-
エクセルで最初のスペースまで...
-
エクセル 文字数 多い順 並...
-
Excelで半角の文字を含むセルを...
-
エクセル(勝手に太字になる)
-
2つのエクセルのデータを同じよ...
-
エクセルで文字が混じった数字...
-
エクセルの項目軸を左寄せにしたい
-
エクセルの並び変えで、空白セ...
-
「B列が日曜の場合」C列に/...
-
Excel、市から登録している住所...
-
VBAで文字列を数値に変換したい
-
エクセルの表から正の数、負の...
-
エクセル 同じ値を探して隣の...
-
エクセル 時間帯の重複の有無
-
エクセルで、列の空欄に隣の列...
-
文字列に数字を含むセルを調べたい
-
EXCELで 一桁の数値を二桁に
-
エクセルで一行毎、一枚づつ自...
おすすめ情報