| 
    
     |  | 追加で、 Matchしたときに帰ってくる数値ですのことですが...
 
 > Set sh2 = Workbooks("集計表.xlsm").Worksheets(2)
 > Set RangeF = sh2.Range("F6:F115")
 
 >    ' 集計表ブックのF6からF115範囲に マッチするセルがあるか?
 >    MyR = Application.Match(.Cells(k, "C"), RangeF, 0)
 
 .Cells(k, "C") を 範囲RangeF からMatch検索していますが、
 このとき MyR に 1 という数値が返ってきたとしますと、それは
 RangeFという範囲の 1番目のセル で一致という意味であることはご存知ですよね?
 
 RangeF という範囲の1番目のセルを RangeF.Item(1) と表現します。
 RangeF は sh2 の.Range("F6:F115") の範囲のことですから、その1番目のセルは
 具体的にはシート上の[F6]セルのことなのですが、いつもシート上の絶対番地に
 なおさず、「検索範囲の何番目」というママの数値を使ったほうが 複雑にならずに
 済みます。
 ところで コードでは RangeF.Item(MyR) とあらわさず、
 
 > RangeF.Item(MyR, 7)
 
 という表記をしていますが、これは RangeF範囲の (1行目、7列目)のセル という
 意味です。
 
 RangeF.Item(1,1) が [F6]
 RangeF.Item(1,2) が [G6]
 RangeF.Item(1,3) が [H6]
 RangeF.Item(1,4) が [I6]
 :
 RangeF.Item(1,7) が [L6]
 
 ということで、 RangeF.Item(MyR, 7) は RangeF列の MyR行目のセルの 右側7列目の
 セル、ということになります。
 下の
 RangeF.Item(1,11) も 同じ考えで [P6] セルとなります。
 
 なお、Itemは省略可能ですから
 RangeF(1,11) と書くことも可能です。
 
 
 あと、
 MyR = Application.Match(.Cells(k, "C").Value, RangeF, 0)
 と検索値を Valueをつけるのは良くないです。
 なぜなら Matchワークシート関数で検索値は セルの.Value値ではなく
 セルの .Value2 値 だからです。たいていのばあい、 セルのValue2値 は セルの
 Value値と同じですが、日付のときはValue2値は 42345 などのシリアル数値です。
 Value値(2015/5/15) でMatch検索しても絶対にヒットしません。
 
 MyR = Application.Match(.Cells(k, "C").Value2, RangeF, 0)
 
 ↑このように、つけるなら Value2
 通常は何もつけないで セルを書いておけばいいです。↓
 
 MyR = Application.Match(.Cells(k, "C"), RangeF, 0)
 
 |  |