Home  第二章 VBAからみたセル操作


6. Sheets と Range


通常 Range("A1").Select と記述すると
コード実行対象のシートは常にアクティブシートとなります。
コードの記述の中で特定シートのセル(例えばSheet2のA10)を選択したいときなどは、

  1. Sheet1からSheet2を選び、さらにA10を選択するマクロを登録すると、
    Sheets("Sheet2").Select
    Range("A10").Select
    となります。

  2. シートの選択は、セルを選ぶ時と同じですね。

  3. Select の対象がシートに変わっただけです。

    サンプルファイル 2_006.xls
    やっぱりコードをよく読んでください。

    One Point アドバイス
    Windows操作の基本は、必ず選ぶことですよね!「選んでから何かをする」
    その「何かをする対象」をオブジェクト(Object)といいます。

    スリム化の注意(Selectについて)
    Sheet1 を表示しているときに Sheet2 のセルA10を選択したいときはどうなるでしょうか?
    Sheets("Sheet2").Range("A10").Select でOKのような気もしますが、
    これはエラーになります。

    かならず一度目的のシートをアクティブにしてからでないと失敗します。
    正解は
    Sheets("Sheet2").Select  (又はActivate)
    Range("A10").Select    (又はActivate) です。
    なお 参考までに上記を一行で記述するには、
    Application.Goto Worksheets("Sheet2").Range("A10") となります。


    記述例

    A_04 と A_05    PlusA003 と PlusA004   の違いを確認してください。

    '----------------------------------------------------------------

    Sub A_04() 
        Range("E5").Select
    End Sub

    Sub A_05()
        Sheets("Sheet2").Select
        Range("E5").Select
    End Sub

    '----------------------------------------------------------------

    Sub PlusA003()
        Range("E5").Value = "もじ文字モジ"
    End Sub

    Sub PlusA004()
        Sheets("Sheet3").Range("E5").Value = Range("E5").Value
    End Sub

    '----------------------------------------------------------------

    Top