[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『空白で削除』(ポム)
削除じゃなくクリアだとして。
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.