• ベストアンサー

エクセルでオ-トフィルと

いつも御世話になります Cells(t + 1, 5)のセルに FormulaR1C1 = "=IF(RC[-4]="""","""",VLOOKUP(RC[-4],漁師名!R2C3:R300C4,2,FALSE))" VLOOKUPが入ってます セルから50行コピ-する時は Selection.AutoFillか Copy Paste か、手動でやると一緒のように 思うのですが一般的にはどちらがいいのですか 初心者なのでわかりやすくお願いいたします いつもすみません

質問者が選んだベストアンサー

  • ベストアンサー
  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.1

回答がないようなので、書いてみます。 >Selection.AutoFillか Copy Paste か、手動でやると一緒のように思うのですが Copy→Pasteについて、 Pasteメソッドを使用した場合は、クリップボードを経由して貼り付けられていて、コピー元に算式があれば貼り付け先範囲の形状で、算式のセル参照が調整されます。($付きのセル参照はそのまま)  Selection.AutoFillについて、  基準となるセル.AutoFill(書き込み先セル範囲, Type) のように書きますが、  TypeをxlFillDefault、xlFillCopy、(省略も)にすると、元のセルの算式が変化します。   このような仕様のため、『手動でやると一緒のように思うのですが』となるのでしょう。 結果はいっしょになります。   >・・・『一般的にはどちらがいいのですか』 分かりません。 Copy-SpecialPasteメソッドなどもあり、AutoFillにもTypeの指定があるので、色々な使い方があります。状況によって使い分けています。 >セルから50行コピ-する時は・・・ 個人的には、連続範囲内に算式を登録する時は、コピーやフィルはあまり使いません。 例えば、E5セルに『=C5+D5』と入れて、これを『E5:E20』にコピーしたいときは、   Range("E5:E20").FormulaR1C1 = "=RC[-2]+RC[-1]" としてしまいます。シート上で入力するとき、矩形範囲を選択して、アクティブセルのみに入力して『Ctrl+Return』で一括登録できるのと同様です。(コードでの書き方) また、コードを使って、シートに算式を書き込むことは極力避けています。書き込み先を間違えないようにしたり、修正に気を使う必要があるからです。 それから、VloopUpもあまり使わない(沢山使わない)ようにしています。数多く使うと動作が鈍くなるし、コードからVloopUpを使う場合、検索結果をセルに書くほうが軽くなるように思います。

hajihaji
質問者

お礼

いつもありがとうございます わかりやすく助かります

関連するQ&A