すぐマク  Home      この画面を閉じるには、×ボタンをクリック

-----------------------------------------------------------------------------------------
Private Sub 休日表の年と月の列を年月シートに写して6桁の年月を算出する()
    Sheets("年月").Select                       '年月シートを
        Cells.Clear                             'すべてクリアする
    Sheets("休日表").Select                     '休日表シートの
        Columns("A:B").Copy                     '年月の列をコピーする
    Sheets("年月").Select                       '年月シートに
        Range("A1").PasteSpecial Paste:=xlValues '値を貼り付ける
年と月をつないだ文字列を作る式を年月シートのセルに埋め込む
        Range("C2").FormulaR1C1 = "=LEFT(RC[-1],LEN(RC[-1])-1)" '月の数字部分を取り出す式
        Range("D2").FormulaR1C1 = "=LEFT(RC[-3],4)" '年の数字部分を取り出す式(最初の行だけ)
        Range("C2").Copy                        'C2セルをコピーする
        Range("C4").PasteSpecial Paste:=xlFormulas 'C4セルヘ式を貼り付ける
        Range("D4").FormulaR1C1 = "=IF(RC[-3]="""",R[-2]C,LEFT(RC[-3],4))" '年の数字部分を取り出す式
        Range("E2").FormulaR1C1 = "=RC[-1] & RIGHT(""00"" & RC[-2],2)" '年と月をつなぐ式
        Range("E2").Copy                        'E2セルをコピーする
        Range("E4").PasteSpecial Paste:=xlFormulas 'E4セルヘ式を貼り付ける
    Sheets("休日表").Select                     '休日表シートの
        下 = Range("C2").End(xlDown).Row        '1日の列で下端を検出する(年月シートの下端でもある)
    Sheets("年月").Select                       '年月シートの
        Range("C4:E5").Copy                     'C4〜E5セルまで2行分をコピーする
        Range(Cells(6, 3), Cells(下, 5)).PasteSpecial Paste:=xlFormulas 'C6からE列の最下端行セルまで式を貼り付け
        最小YM = Range("E2").Value            '入力年月のチェック用
        最大YM = Range(Cells(下 - 1, 5), Cells(下 - 1, 5)).Value
End Sub
-----------------------------------------------------------------------------------------
<コメント>
FormulaR1C1で埋め込んでいる関数は、理解しやすいように短く区切っています。