[[20140108102532]] 『記述をまとめたい』(aki) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『記述をまとめたい』(aki)

いつも勉強させていただきありがとうございます。

 教えて下さい。
全角数字を半角数字にしたいと思い、以下のように自動作成しました。
これを簡略化することって可能でしょうか?
恐らくWith?を使用することになると思うのですが、、、

 Sub 全角数字を半角数字に()

    Selection.Replace What:="0", Replacement:="0", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
    Selection.Replace What:="1", Replacement:="1", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
    Selection.Replace What:="2", Replacement:="2", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
    Selection.Replace What:="3", Replacement:="3", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
    Selection.Replace What:="4", Replacement:="4", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
    Selection.Replace What:="5", Replacement:="5", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
    Selection.Replace What:="6", Replacement:="6", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
    Selection.Replace What:="7", Replacement:="7", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
    Selection.Replace What:="8", Replacement:="8", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
    Selection.Replace What:="9", Replacement:="9", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
    Selection.Replace What:="(", Replacement:="(", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
    Selection.Replace What:=")", Replacement:=")", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
    Selection.Replace What:="「", Replacement:="「", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
    Selection.Replace What:="」", Replacement:="」", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
    Selection.Replace What:=":", Replacement:=":", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False

 End Sub

< 使用 Excel:Excel2003、使用 OS:WindowsXP >


これは使えないでしょうか?
文字列中の全角文字を半角文字に変換します。
範囲選択して下記マクロ実行。

Sub 全角→半角()

    Dim CELL_OBJECT As Object 
    For Each CELL_OBJECT In Selection 
        CELL_OBJECT.Value = StrConv(CELL_OBJECT.Value, vbNarrow) 
    Next 
End Sub 

  (康平) 2014/01/08(水) 10:59

[[20131218234709]] (環境依存文字を変換したい)
参考になると思います。
(ニート) 2014/01/08(水) 11:09

 Sub 置換()

     Dim i As Long

     For i = 0 To 9
        Selection.Replace What:=StrConv(i, vbWide), Replacement:=StrConv(i, vbNarrow)
     Next

 End Sub

 でもいいのかな?

 ※追記 11:32
 数字だけでなくアルファベットも半角になっていいのなら康平さんのコードの方が適しています。
(se_9) 2014/01/08(水) 11:11

 下記のマクロをモジュールシートに貼り付けます。 
 半角にする場合は、対象の範囲を選択し、全角から半角を実行します。 
 全角にする場合は、対象の範囲を選択し、半角から全角を実行します。 

  Option Explicit 

  Sub 全角から半角() 
    ChangeByte vbNarrow 
  End Sub 

  Sub 半角から全角() 
    ChangeByte vbWide 
  End Sub 

  Sub ChangeByte(conversion As Integer) 
    Dim rng1 As Range, r As Range 

    If TypeName(Selection) <> "Range" Then Exit Sub 
    Set rng1 = Application.Intersect( _ 
        ActiveSheet.UsedRange, Selection) 
    If rng1 Is Nothing Then Exit Sub 
    rng1.Select 
    For Each r In Selection.Cells 

        If Not IsEmpty(r.Value) Then 
            If Not r.HasFormula Then 
                r.Value = StrConv(r.Value, conversion) 
            End If 
        End If 
    Next 
  End Sub 
(ニート) 2014/01/09(木) 02:10

 Sub test()
     With Selection
         .Value = Evaluate("if(" & .Address & "<>"""",asc(" & .Address & "),"""")")
     End With
 End Sub
(seiya) 2014/01/09(木) 11:58

 Sub henkan()
   Dim r As Range
     For Each r In Selection
     r.Value = Application.Asc(r)
   Next
 End Sub
(G999) 2014/01/09(木) 13:20

康平さま
se_9さま
ニートさま
seiyaさま
G999さま

 みなさま本当にありがとうございます。
こんなにも沢山の書き込みありがとうございます。
色々な方法があるんですね。
御礼が遅くなり大変申し訳ありませんでした。
一つ一つ確認させていただきます。
お世話になりました。

(aki) 2014/01/09(木) 17:36


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.