[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『空白で削除』(ポム)
削除じゃなくクリアだとして。
Sub Sample1()
Dim c As Range
For Each c In Range("B3:B115")
If Len(c.Value) = 0 Then c.Offset(, 5).ClearContents
Next
End Sub
Sub Sample2()
Dim r As Range
On Error Resume Next
Set r = Range("B3:B115").SpecialCells(xlCellTypeBlanks)
On Error GoTo 0
If Not r Is Nothing Then r.Offset(, 5).ClearContents
End Sub
(ぶらっと)
もし、入力のタイミングでリアルタイムで実行するのなら、シートモジュールに。
Private Sub Worksheet_Change(ByVal Target As Range)
Dim r As Range
Dim c As Range
Set r = Intersect(Target, Range("B3:B115"))
If r Is Nothing Then Exit Sub
Application.EnableEvents = False
For Each c In r
If Len(c.Value) = 0 Then c.Offset(, 5).ClearContents
Next
Application.EnableEvents = True
End Sub
(ぶらっと)
Sample2の方法ではしんどいけど Sample1 や、Worksheet_Change なら
If Len(c.Value) = 0 Then c.Offset(, 5).ClearContents これを
If c.Value = 0 Then c.Offset(, 5).ClearContents に。
(ぶらっと)
G列に数式が無ければ
Sub test()
[G3:G115] = [if(B3:B115<>"",if(B3:B115=0,"",G3:G115),"")]
End Sub
(seiya)
To seiya さん
眼福です! 自分はエクセルに疎いので、このような、とくに関数で配列を作り出すということに なかなか思い当たりません。精進します。
(ぶらっと)
ぶらっとさん
> 眼福です! ちょっと大袈裟ですよ...
この方法(Evaluate method)は 1) 使用が限定される。 2) 可読性が悪い。 3) 複雑な処理ができない。 等があるので、あまり深くは追及しないようにしています。 参考までに [[20070212134849]] (seiya)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.