|    | 
     ▼レッズ命 さん: 
 
>この方法じゃできないことに気付きました。 
>Rangeでやることにしました。 
 
Replaceメソッドでやるなら、セル範囲をループする必要はなかったですね 
 
 
With Range("A2", Cells(1, 1).End(xlDown)) '← 置換範囲 適宜変更 
  If 月 = 1 Then 
    .Replace "/25", DateSerial(年 - 1, 12, 25), xlWhole 
    .Replace "/27", DateSerial(年 - 1, 12, 27), xlWhole 
    .Replace "/31", DateSerial(年, 1, 0), xlWhole 
  Else 
    .Replace "/25", DateSerial(年, 月 - 1, 25), xlWhole 
    .Replace "/27", DateSerial(年, 月 - 1, 27), xlWhole 
    .Replace "/31", DateSerial(年, 月, 0), xlWhole 
  End If 
  .Replace "/1", DateSerial(年, 月, 1), xlWhole 
  .Replace "/5", DateSerial(年, 月, 5), xlWhole 
  .Replace "/6", DateSerial(年, 月, 6), xlWhole 
  .Replace "/8", DateSerial(年, 月, 8), xlWhole 
  .Replace "/20", DateSerial(年, 月, 20), xlWhole 
  .Replace "/21", DateSerial(年, 月, 21), xlWhole 
  .Replace "/24", DateSerial(年, 月, 24), xlWhole  
 End With 
 | 
     
    
   |