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

締切り済みの質問

Excelのマクロに関して

Excelのマクロで特定のセルに特定の数値が入力されている場合、違うセルにある文字列を入力させる場合

すいません。

説明がものすごく悪くて申し訳ないのですが。

A列(行は100くらいまで)に「100」の数値が入力されている場合に、同じ行のE列に文字列「○○」を返す場合は
どのようなマクロを使ったらよろしいですか。

会社の人が
Sub TimeIntervalPaint()

Dim x As Integer, op As Integer
Dim TI As Range

Application.ScreenUpdating = False

Cells.Interior.ColorIndex = xlNone
op = Range("B3").End(xlDown).Row
Range("E3:BF" & op).ClearContents

Call WorkTime

For x = 3 To 150

If Range("A" & x).Value = "101" Then

If TI Is Nothing Then
Set TI = Union(Range("L" & x), Range("AD" & x), Range("T" & x, "W" & x))
Else
Set TI = Union(TI, Range("L" & x), Range("AD" & x), Range("T" & x, "W" & x))


End If

こういったマクロを登録しているのですが、新たにE列に文字列を入力できるように改良したいのです。
既に退職していて聞くことすら出来ません。

説明がものすごく悪いのは分かっていますが、どなたかご教授ください。

投稿日時 - 2008-10-29 00:59:57

QNo.4437833

すぐに回答ほしいです

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

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

回答(2)

ANo.2

間違えてました。
End sub の前に下記があると思います。
Application.ScreenUpdating = True

ここの手前に下の7行追加でOKでしょう。

Columns("E:E").NumberFormatLocal = "@"
aa% = 3
Dim bb As String
Do Until aa% = 150
Range("E" & aa%) = Range("A" & aa%).Text
aa% = aa% + 1
Loop

投稿日時 - 2008-10-29 13:36:06

ANo.1

これに変更してみてください。
End Sub の前に最後の7行を追加でどうでしょう。



Sub TimeIntervalPaint()

Dim x As Integer, op As Integer
Dim TI As Range

Application.ScreenUpdating = False

Cells.Interior.ColorIndex = xlNone
op = Range("B3").End(xlDown).Row
Range("E3:BF" & op).ClearContents

Call WorkTime

For x = 3 To 150

If Range("A" & x).Value = "101" Then

If TI Is Nothing Then
Set TI = Union(Range("L" & x), Range("AD" & x), Range("T" & x, "W" & x))
Else
Set TI = Union(TI, Range("L" & x), Range("AD" & x), Range("T" & x, "W" & x))


End If


Columns("E:E").NumberFormatLocal = "@"
aa% = 3
Dim bb As String
Do Until aa% = 101
Range("E" & aa%) = Range("A" & aa%).Text
aa% = aa% + 1
Loop

投稿日時 - 2008-10-29 13:31:12

あなたにオススメの質問