| 
    
     |  | ▼UO3 さん: 
 ご回答ありがとうございました。
 フォームのテキストBOXにシートを指定することができました。
 フォームで「次へ」ボタンを押すと行を移動するようにしていて、
 移動先をアクティブセルとするように以下のようにSelectとしているのですが、別シートへ切り替えが時にこの次へボタンを押した時にそのシートではアクティブせるとしてSelectさせないようにさせるには、どうしたらよいでしょうか。
 補足で申し訳ございません。
 
 Dim データ行 As Ling
 
 Private Sub cmdButton次_Click()
 
 データ行 = データ行 + 1
 Cells(データ行, 3).Select
 
 End Sub
 
 >▼ケイ さん:
 >
 >こんにちは
 >
 >時折、ユーザーフォームモジュールが【特定のシート】配下にあるような
 >イメージをもたれる方がいらっしゃいますね。
 >
 >エクセルVBAには様々なモジュールがあるわけですが、シートモジュール以外は
 >各シートは、それらモジュールから見て、【並列】です。
 >ですから、たとえば Range("A1").Value とだけ記述すると、
 >【たまたまその時にアクティブになっているシートのA1】を参照します。
 >
 >複数シートがあり、つねに、ある特定のシートの値を参照する場合は
 >特定のシート.Range("A1").Value というように、【シート修飾】をしてやる
 >必要があります。
 >
 >シート修飾はいろいろな記述方法がありますが、2つほど。
 >
 >1)With を使います。セル範囲記述の前に .(ピリオド)を付加します。
 >
 >  With Sheets("Sheet1")
 >   TextBox1.Value = .Range("A1").Value
 >   Label1.Caption = .Range("A2").Value
 >  End With
 >
 >2)シートオブジェクトを使います。
 >
 >  Dim sh As Worksheet
 >  Set sh = Sheets("Sheet1")
 >  TextBox1.Value = sh.Range("A1").Value
 >  Label1.Caption = sh.Range("A2").Value
 >  Set sh = Nothing
 
 |  |