Selection.PasteSpecial Paste:=xlAllExceptBorders
と記述すると、セルの入力規則だけがペーストされます。しかし、Excel 2000 VBAでまったく同じコードを実行すると、罫線を除くすべてがペーストされます。ちなみに、セルの入力規則をペーストするときには、
Selection.PasteSpecial Paste:=xlDataValidation
というコードを書かなければなりません。
図11:[形式を選択して貼り付け]ダイアログボックス |
![]() |
ただ、よく考えると、セルの入力規則をペーストするときに、PasteSpecialの組み込み定数に「xlAllExceptBorders」(日本語に訳すと「罫線を除くすべて」)を指定しなければならなかったExcel 97 VBAの方が異常だったわけで、ある意味これはバグフィックスとも言えます。
ここではすべてを紹介することはできませんが、Office 97 VBAが抱えていた大きなバグのほとんどはOffice 2000になって修正されています。それを考えると、100%の互換性は保証できませんが、Office 2000 VBAの方が動作は安定していることだけは間違いありません。 多少の互換性のリスクはありますが、より動作の安定しているOffice 2000にバージョンアップした方が得策であると考えます。