アプリ版:「スタンプのみでお礼する」機能のリリースについて

業務上の処理で困っていることがあります。お知恵をお貸し下さい
「メーカーからCVSファイルでデータが届く→それを読み込んで伝票発行」という作業を行っているのですが
住所等の番地やマンション名等(カナ)が全て全角で入力されている状態なのです。(同じ文字列に漢字や平仮名も混じっています)
伝票発行するソフトは規定文字数が少なめなのでこれをいちいち半角に直してから
読み込まないといけません。手作業になりますし、件数も多いので困っています
「選択した行(シート全体でも構いません)の文字列で半角に直せるものは半角に変換」というマクロを組むことは可能でしょうか?
初心者レベルですが何度かVBAを使ったことはあります
何卒よろしくお願い致します。

A 回答 (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
    • good
    • 0
この回答へのお礼

わがままを聞いてくださりありがとうございました!
シート全体の文字列を半角にしても構わない。ということだったので
このマクロを少し改造して業務を行いたいと思います。

本当にありがとうございます♪m(_ _;)m

お礼日時:2008/06/05 15:44

すみません、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

です。
    • good
    • 0

こんな感じでいかがでしょうか?



Sub test01()

Selection.SpecialCells(xlCellTypeConstants, 2).Select

Selection = StrConv(Selection.Value, vbNarrow)
End Sub
    • good
    • 0
この回答へのお礼

回答ありがとうございます!

頂いたコードを実行したら希望通りに半角になりました♪
ちなみにこれを行ではなくて列単位(複数選択できればうれしいです)で
処理を行うにはどのようなコードに変更したらよいでしょうか?
重ね重ねすみませんがよろしくお願い致します。

お礼日時:2008/06/05 11:01

こんにちは。



 Word2003ですが、選択して、[書式]→[文字種の変換]で混在していても変換可能な文字だけ半角にできました。
 csvはテキストファイルなので、ワードでも編集可能です。開くときにファイルの種類を「全てのファイル(*.*)」にしてください。
 お試し下さい。

では。
    • good
    • 0
この回答へのお礼

すみません
使用ソフトを書き忘れていました(恥
エクセル2003です

しかしワードも使うので参考になりました
ありがとうございます!

お礼日時:2008/06/05 10:31

OSと使用ソフトがわかりませんが、エクセルならこんなのがありました。



参考URL:http://oshiete1.goo.ne.jp/qa2999823.html
    • good
    • 0
この回答へのお礼

ありがとうございます!
希望していたものでした
こんな関数があるのですね。。。

とても助かりました♪

お礼日時:2008/06/05 10:34

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!