|
|
| Excel VBA Macro ・ コピー ・ FAQ |
|
入力規則やメッセージをコピーするには?
|
|
|
|
Question 49.4 |
|
 |
 |
|
|
500連発・第2弾のマクロ番号 178の解説に、
「入力規則やメッセージをコピーするマクロは、自動記録できるが実行できないので、回避措置として [形式を選択して貼り付け]の定数に [罫線を除くすべて]の 'xlAllExceptBorders' を使った」とあります。
その後の状況がわかれば教えてください。
|
|
Answer |
Copyright (C) 2001.10.15 永井善王 |
|
|
|
Excel はバージョンアップされるたびに、どんどん改良されていますが [形式を選択して貼り付け]も同様で、下図でもわかるように Excel 95では 6通りであったものが、Excel 2002になると 10通りに増えました。
|
| Excel 95 |
Excel 2002 |
 |
 |
|
「入力規則」の貼り付けはExcel 97で追加されましたが、ご質問の中の文章にあるとおり Excel 2000までは、マクロとして自動記録できるのに実行はできませんでした。
早速その後の状況を動作確認して、以下にまとめておきました。
Mac用Excel の最新バージョン 2001
暫定的な改良が行われています。
方法としては、マクロ番号 178で回避措置として採用した [罫線を除くすべて]の 'xlAllExceptBorders' を使って自動記録されます。これにより、とりあえず記録したマクロを実行できるようになりました。しかし、ペースト(貼り付け)するつもりのないものもペーストされてしまうので、本格的に改良されるまでは注意が必要です。
次回バージョンアップを期待しましょう。
Windows用Excel の最新バージョン 2002
本格的に改良されました。
PasteSpecial メソッド(形式を選んで貼付け)の引数 Pasteの定数に xlPasteValidation として用意されました。
例えば、下記マクロの 6行目のコードのように指定することが可能です。
'-----------------------------------------------------------------------------------------
Private Sub 入力規則やメッセージをコピーする()
Worksheets("SSS").Activate
コピー範囲 = "D8:I8" '◆◆◆
貼付け範囲 = "D9:I12" '◆◆◆
Range(コピー範囲).Copy '◆◆◆
Range(貼付け範囲).PasteSpecial Paste:=xlPasteValidation '入力規則やメッセージを貼付け
End Sub
'-----------------------------------------------------------------------------------------
Excel 2002 の [形式を選択して貼り付け] の定数には、この他にも 2つ追加されました。くわしくは [PasteSpecial メソッドの引数 Paste の定数]を見てください。
|
|
|
|
| |
|
|