| 
    
     |  | ▼なーちん さん: 
 >おはようございます。
 >丁寧な解説ありがとうございます。
 >下記内容で実現できました。
 >withの中は条件付書式なのは分かるのですが
 >Application.Names.Add "hformula", , , , , , , , , "=get.cell(48,rc)"
 
 >が、なんのことやらさっぱりわかりません
 >hformulaっていう関数を定義してその内容が"=get.cell(48,rc)"ってこと?
 関数ではなく、あくまでも名前の定義です。
 やってることはご推察とおり
 
 「hformula」という名前で"=get.cell(48,rc)"を登録したのです。
 
 「get.cell」は、Excel4Macroというものらしいです。
 その昔は、よく使われていたみたいです。
 (私もそのあたりの歴史はしりませんし、Excel4Macroだって、埋もれていた
 Helpをたまたま見つけたのでそれを調べて今回も記述しました)
 
 このExcel4Macroは、そのままセルの数式や条件付書式に直接指定できないみたいなので
 
 名前の定義で登録した名前で指定しています。
 
 因みに「GET.CELL()」は、セルに関する様々な情報が取得できます。
 GET.CELL(48,rc)の 48 が数式か否かを返す式になっています。
 
 このExcel4Macroを使うと、VBAのオブジェクトからでは、バグで正常に作動しない
 内容でもExcel4Macroを使うと正しく答えを出してくれる場合もあります
 (私が知っているの中では、シート内のページ数の取得ではExcel4Macroを使っています)
 
 
 もっともExcel4Macroは、いつまでサポートされるかわかりませんけどね!!
 
 尚、Excel4MacroのHelpに関しては、
 
 http://www.vbalab.net/vbaqa/c-board.cgi?cmd=one;no=39734;id=excel
 
 参考までに・・・。
 
 |  |