| 
    
     |  | はじめまして。会社の日常業務効率化のために エクセルVBAと悪戦苦闘している、初心者です。
 参考書等を見ながら、がんばっているのですが、
 どうしても行き詰ってしまい、思い切って質問投稿しました。
 
 どなたか、ご指南いただけないでしょうか?
 
 ※質問の要点
 (空白セルを詰めてコピーする方法)
 :問題点・・関数式で得られた「空白セル」は空白ではないのか?:
 
 :参考例:
 注:A列の式はそのままE列まで行固定で入っています。
 
 A1行セル範囲(A1:E1)の値(1,2,0,3,4)←計算式で得られているとする。
 A2行セル範囲(A2:E2)の値(1,2, ,3,4)←関数=IF(A1=0,"",A1)で得られた値
 
 上二つの行から、
 
 セル範囲(A4:E4)の値を(1,2,3,4, )となるようにコピーしたいのですが、
 :A2行・・IF関数が入力されているために、一旦、
 :A3行にVBAで値のみをコピーする。
 その結果
 
 A3行セル範囲(A3:E3)の値(1,2, ,3,4)←値のみを貼り付けて得られた値
 
 A3行をコピーし、それを基にSpecialCells(Type:=xlCellTypeConstants)で
 試行しましたが、結果は
 
 A4行セル範囲(A3:E3)の値(1,2, ,3,4)となり、
 スッテプインにて調べた結果、
 選択範囲A3行が (A1:A2)(A4:A5)とならずに、
 (A1:A5)のままでした。
 
 ※VBA記述は、以下の通りです。
 
 Range("A2:E2").Copy
 Range("A3").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
 :=False
 Dim rg As Range
 Set rg = Range("A3:E3")
 Set rg = rg.SpecialCells(Type:=xlCellTypeConstants)
 rg.Copy
 Range("A4").PasteSpecial
 End Select
 
 どうか、よろしくお願いいたします。
 記述が下手ですみません。
 
 |  |