エクセル2007を使っています、マクロでしたいのですが

セルに郵便番号が6649875と言うように‐ハイフン抜きで入って居ます
マクロでハイフンを入れたいのですがどうしたらいいでしょう

回答の条件
  • URL必須
  • 1人2回まで
  • 13歳以上
  • 登録:2010/11/09 12:08:03
  • 終了:2010/11/09 15:43:14

ベストアンサー

id:SALINGER No.4

SALINGER回答回数3430ベストアンサー獲得回数9692010/11/09 14:07:32

ポイント29pt

マクロでということで、変更する範囲を選択して実行すればハイフンが入るマクロです。

0で始まる郵便番号で数値になって0が消えている郵便番号も保管するようにしました。

また、数値以外のセルはハイフンを入れません。


Sub Macro()
    Dim r As Range
    Dim str As String
    
    For Each r In Selection
        str = Format(r.Value, "0000000")
        If IsNumeric(r.Value) Then
            r.Value = Left(str, 3) & "-" & Mid(str, 4)
        End If
    Next
End Sub

http://q.hatena.ne.jp/

id:chatora

良い感じです

2010/11/09 15:42:07

その他の回答(5件)

id:inthegroove No.1

inthegroove回答回数768ベストアンサー獲得回数62010/11/09 12:31:58

ポイント19pt

マクロというか、関数でできますよ。

A1にデータが入ってるとして、

=LEFT(A1,3)&"-"&RIGHT(A1,4)

です。

http://q.hatena.ne.jp/1289272081

id:chatora

他のセルにハイフンが入った物が出て来るのではなく

数値の入っているセルでは出来ませんか

2010/11/09 13:28:13
id:a-kuma3 No.2

a-kuma3回答回数4365ベストアンサー獲得回数18012010/11/09 12:32:30

ポイント16pt

「マクロで」ってことでしたが、数式でできます。

A1 に郵便番号が入ってるとして、↓のような感じ。

=MID(A1,1,3) & "-" &MID(A1,4,7)

http://dummy/

id:chatora

他のセルにハイフンが入った物が出て来るのではなく

数値の入っているセルでは出来ませんか

2010/11/09 13:28:17
id:inthegroove No.3

inthegroove回答回数768ベストアンサー獲得回数62010/11/09 13:37:31

ポイント16pt

http://q.hatena.ne.jp/1289272081#answer_form

コメントがつけれないので再回答です。

書式設定でも出来ますよ。

書式 → セル → 表示形式 → その他 → 郵便番号

です。

id:SALINGER No.4

SALINGER回答回数3430ベストアンサー獲得回数9692010/11/09 14:07:32ここでベストアンサー

ポイント29pt

マクロでということで、変更する範囲を選択して実行すればハイフンが入るマクロです。

0で始まる郵便番号で数値になって0が消えている郵便番号も保管するようにしました。

また、数値以外のセルはハイフンを入れません。


Sub Macro()
    Dim r As Range
    Dim str As String
    
    For Each r In Selection
        str = Format(r.Value, "0000000")
        If IsNumeric(r.Value) Then
            r.Value = Left(str, 3) & "-" & Mid(str, 4)
        End If
    Next
End Sub

http://q.hatena.ne.jp/

id:chatora

良い感じです

2010/11/09 15:42:07
id:a-kuma3 No.5

a-kuma3回答回数4365ベストアンサー獲得回数18012010/11/09 14:21:39

ポイント17pt

今度もマクロではありませんが、表示形式でいけると思います。

数値で入ってるとして、

セルの書式設定 → 表示形式 → ユーザー定義 で、「種類」のところを

000-0000

としてください。

http://dummy/

id:Silvanus No.6

Silvanus回答回数174ベストアンサー獲得回数672010/11/09 14:52:46

ポイント18pt

変換したいセルを含む様に範囲を選択した状態で下記のマクロを実行して下さい。

範囲内にある7桁の数字列以外の値を含むセルは無視する様にしてあります。

Option Explicit

Sub hatena_chatora_101109()

Dim rngC As Range

    For Each rngC In Selection
        With rngC
            If Len(.Value) = 7 And 0 < Val(.Value) And _
                    Round(Val(.Value)) = Val(.Value) Then
                .Value = Left(.Value, 3) & "-" & Right(.Value, 4)
            End If
        End With
    Next

End Sub

因みに、北海道や東北の様な「最初が0で始まる郵便番号」を

文字列として入力済みのセルに対しては、

Excelのメニューにあるセルの書式設定を使っても一発変換できません。

http://q.hatena.ne.jp/

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません