| 
    
     |  | ▼kenken さん: こんばんは。
 
 
 >普通のエクセルでは列の挿入をしても数式が記入されているセルは
 >それに応じて変更されると思います。
 >例 C1セル=A1*B1 が入力されていて、B列に1列挿入すると
 >  D1セル=A1*C1 と自動的になりますよね
 >
 >しかし、マクロでは
 >Sub 例()
 > Worksheets("sheet1").Range("B1") = "aaaa"
 >End Sub
 >などのマクロがあっても、後々作成していく中でB列を挿入して
 >も自動的にマクロがC1には変わりませんよね?
 
 名前の定義を使うとそれらしい変化は見られます。
 
 新規ブック(Sheet1というシート名が存在すること)の標準モジュールに
 
 
 '=============================================================
 Option Explicit
 Sub 準備()
 ActiveWorkbook.Names.Add Name:="sheet1!氏名", RefersToR1C1:="=Sheet1!C2"
 Worksheets("sheet1").Range("b1").Value = "氏名"
 End Sub
 '=====================================================================
 Sub test()
 With Worksheets(1).Range("氏名")
 .Cells(.Rows.Count).End(xlUp).Offset(1, 0).Value = _
 Application.InputBox("input")
 End With
 End Sub
 
 まず、「準備」を実行して名前の定義や項目名を設定します。
 
 上記のプロシジャーが正常に終了したなら、「test」を実行してみてください。
 (但し、Inputboxで「キャンセル」はなしということで・・・)
 
 B2から順次入力が可能になります。
 
 B列に列挿入を行い、再び「test」を実行して適当な文字を指定して下さい。
 
 指定した文字列は希望通りC列に入力されませんか?
 
 後は、名前の定義にどれだけ便利な数式を登録するかですが・・・。
 
 |  |