こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

VBAで範囲を指定するには

いつもお世話になります。
WINDOWS7 EXCELL2010 です。

下記のマクロを採用していますがその中に適用する範囲を指定したいのです。
指定する範囲は  I13~AM27 です。

どんな方法で追加すればいいかご教授を願えませんか。

Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False

If Target.Value = 0 Then Target.Value = " "
If Target.Value = 1 Then Target.Value = "日"
If Target.Value = 2 Then Target.Value = "△"
If Target.Value = 3 Then Target.Value = "▼"
If Target.Value = 4 Then Target.Value = "前"
If Target.Value = 5 Then Target.Value = "夜"
If Target.Value = 6 Then Target.Value = "明"
If Target.Value = 7 Then Target.Value = "有"

Application.EnableEvents = True
End Sub

投稿日時 - 2013-02-14 09:14:34

QNo.7944437

困ってます

質問者が選んだベストアンサー

シート上で該当範囲のセルが変更されたときに数字を自動変換したいのですね。
If Intersect~ で範囲指定できます。


Private Sub Worksheet_Change(ByVal Target As Range)

If Intersect(Target, Range("I13:AM27")) Is Nothing Then Exit Sub 'ココで範囲指定

Application.EnableEvents = False

If Target.Value = 0 Then Target.Value = " "
If Target.Value = 1 Then Target.Value = "日"
If Target.Value = 2 Then Target.Value = "△"
If Target.Value = 3 Then Target.Value = "▼"
If Target.Value = 4 Then Target.Value = "前"
If Target.Value = 5 Then Target.Value = "夜"
If Target.Value = 6 Then Target.Value = "明"
If Target.Value = 7 Then Target.Value = "有"

Application.EnableEvents = True
End Sub

投稿日時 - 2013-02-14 10:43:55

お礼

早速のご指導、ご回答を誠にありがとうござる居ました。

投稿日時 - 2013-02-14 11:06:58

ANo.1

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

一例です。

Private Sub Worksheet_Change(ByVal Target As Range)
Dim r As Range
Set Target = Intersect(Target, Range("i13:am27"))
If Target Is Nothing Then End
Application.EnableEvents = False
For Each r In Target
If r <> "" And r < 8 Then
r = Split(",日,△,▼,前,夜,明,有", ",")(r)
End If
Next
Application.EnableEvents = True
End Sub

投稿日時 - 2013-02-14 10:46:27

お礼

早速子指導、ご回答いただき誠に有難うございました。
試させていただきました。
結果はよかったです。

投稿日時 - 2013-02-14 11:28:17

あなたにオススメの質問