| 
    
     |  | ▼浜口 さん: こんばんは。
 
 >※質問の要点
 >(空白セルを詰めてコピーする方法)
 >:問題点・・関数式で得られた「空白セル」は空白ではないのか?:
 >
 >:参考例:
 >   注: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)のままでした。
 >
 '===================================
 Sub test()
 Dim ans As Range
 On Error Resume Next
 Set ans = Range("a2:e2").SpecialCells(xlCellTypeFormulas, xlNumbers)
 If Err.Number = 0 Then
 ans.Copy
 Range("a4").PasteSpecial xlPasteValues
 Application.CutCopyMode = False
 End If
 on error goto 0
 End Sub
 これで確認してみて下さい。
 
 
 |  |