文書番号: 291308 - 対象製品
この記事は、以前は次の ID で公開されていました: JP291308
すべて展開する | すべて折りたたむ

目次

詳細

マイクロソフトは、この情報をプログラミング言語の使用方法の一例として提供するだけであり、市場性および特定目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。この資料は、例示されているプログラミング言語やプロシージャの作成およびデバッグに使用するツールについて理解されているユーザーを対象としています。Microsoft Support 担当者は、特定のプロシージャの機能についての問い合わせにはお答えできますが、ユーザー固有の目的に合わせた機能の追加、プロシージャの作成などの内容変更は行っておりません。

この資料の例では、次の表に示した Visual Basic のメソッドを使用しています。
   メソッド               引数
   ------------------------------------------
   Activate           なし

   Cells              rowIndex, columnIndex
   Application.Goto   reference, scroll
   Offset             rowOffset, columnOffset
   Range              cell1
                      cell1, cell2
   Resize             rowSize, columnSize
   Select             なし

   Sheets             index (または sheetName)
   Workbooks          index (または bookName)
   End                direction
   CurrentRegion      なし

				
この資料の例では、次の表のプロパティを使用しています。
   プロパティ           用途

   ---------------------------------------------------------------------
   ActiveSheet      アクティブ シートを指定します。

   ActiveWorkbook   アクティブ ブックを指定します。

   Columns.Count    指定された項目の列数をカウントします。

   Rows.Count       指定された項目の行数をカウントします。

   Selection        現在選択されている範囲を参照します。

				

1 : アクティブ ワークシート上のセルの選択方法

アクティブ シート上のセル D5 を選択するには、次の例のいずれかを使用します。
ActiveSheet.Cells(5, 4).Select
				
または
ActiveSheet.Range("D5").Select
				

2 : 同じブック内の別のワークシート上のセルの選択方法

同じブック内の別のワークシート上のセル E6 を選択するには、次の例のいずれかを使用します。
Application.Goto ActiveWorkbook.Sheets("Sheet2").Cells(6, 5)
				
または
				
Application.Goto (ActiveWorkbook.Sheets("Sheet2").Range("E6"))
				
または、ワークシートをアクティブにし、上記の方法 1 を使用してセルを選択します。
Sheets("Sheet2").Activate
ActiveSheet.Cells(6, 5).Select
				

3 : 別のブックのワークシート上のセルの選択方法

別のブックにあるワークシート上のセル F7 を選択するには、次の例のいずれかを使用します。
Application.Goto Workbooks("BOOK2.XLS").Sheets("Sheet1").Cells(7, 6)
				
または
Application.Goto Workbooks("BOOK2.XLS").Sheets("Sheet1").Range("F7")
				
または、ワークシートをアクティブにし、上記の方法 1 を使用してセルを選択します。
Workbooks("BOOK2.XLS").Sheets("Sheet1").Activate
ActiveSheet.Cells(7, 6).Select
				

4 : アクティブ ワークシート上のセル範囲の選択方法

アクティブ ワークシート上のセル範囲 C2:D10 を選択するには、次の例のいずれかを使用します。
ActiveSheet.Range(Cells(2, 3), Cells(10, 4)).Select
				
ActiveSheet.Range("C2:D10").Select
				
ActiveSheet.Range("C2", "D10").Select
				

5 : 同じブック内の別のワークシート上のセル範囲の選択方法

同じブック内の別のワークシート上のセル範囲 D3:E11 を選択するには、次の例のいずれかを使用します。
Application.Goto ActiveWorkbook.Sheets("Sheet3").Range("D3:E11")
				
Application.Goto ActiveWorkbook.Sheets("Sheet3").Range("D3", "E11")
				
または、ワークシートをアクティブにし、セル範囲を選択するために上記の方法 4 を使用します。
Sheets("Sheet3").Activate
ActiveSheet.Range(Cells(3, 4), Cells(11, 5)).Select
				

6 : 別のブックのワークシート上のセル範囲の選択方法

別のブックのワークシート上のセル範囲 E4:F12 を選択するには、次の例のいずれかを使用します。
Application.Goto Workbooks("BOOK2.XLS").Sheets("Sheet1").Range("E4:F12")
				
Application.Goto _
      Workbooks("BOOK2.XLS").Sheets("Sheet1").Range("E4", "F12")
				
または、ワークシートをアクティブにし、セル範囲を選択するために上記の方法 4 を使用します。
Workbooks("BOOK2.XLS").Sheets("Sheet1").Activate
   ActiveSheet.Range(Cells(4, 5), Cells(12, 6)).Select
				

7 : アクティブ ワークシート上の名前の範囲の選択方法

アクティブ ワークシート上の名前の範囲 "Test" を選択するには、次の例のいずれかを使用します。
Range("Test").Select
				
Application.Goto "Test"
				

8 : 同じブック内の別のワークシート上の名前の範囲の選択方法

同じブック内の別のワークシート上の名前の範囲 "Test" を選択するには、次の例を使用します。
Application.Goto Sheets("Sheet1").Range("Test")
				
または、ワークシートをアクティブにし、上記の方法 7 を使用して名前の範囲を選択します。
Sheets("Sheet1").Activate
Range("Test").Select
				

9 : 別のブックのワークシート上の名前の範囲の選択方法

別のブックのワークシート上の名前の範囲 "Test" を選択するには、次の例を使用します。
Application.Goto _
   Workbooks("BOOK2.XLS").Sheets("Sheet2").Range("Test")
				
または、ワークシートをアクティブにし、上記の方法 7 を使用して名前の範囲を選択します。
Workbooks("BOOK2.XLS").Sheets("Sheet2").Activate
Range("Test").Select
				

10 : アクティブ セルから相対位置にあるセルを選択する方法

アクティブ セルの 5 行下、4 列左のセルを選択するには、次の例を使用します。
ActiveCell.Offset(5, -4).Select
				
アクティブ セルの 2 行上、3 列右のセルを選択するには、次の例を使用します。
ActiveCell.Offset(-2, 3).Select
				
: "ワークシートの外" のセルを選択すると、エラーが発生します。上に示されている最初の例では、アクティブ セルが "A" から "D" のいずれかの列にある場合、左に 4 列移動すると無効なセル位置となるため、エラーを返します。

11 : 別の (非アクティブな) セル相対にセルを選択する方法

セルの C7 の 5 行下、4 列右のセルを選択するには、次の例のいずれかを使用します。
ActiveSheet.Cells(7, 3).Offset(5, 4).Select
				
ActiveSheet.Range("C7").Offset(5, 4).Select
				

12 : 指定した範囲からのオフセットでセル範囲を選択する方法

名前の範囲"Test" と範囲の大きさが同じで、4 行下、3 列右の位置に移動したセル範囲を選択するには、次の例を使用します。
ActiveSheet.Range("Test").Offset(4, 3).Select
				
名前の範囲が別の (非アクティブの) ワークシートにある場合は、まずワークシートをアクティブにし、それから次の例で使用されているセル範囲を選択します。
Sheets("Sheet3").Activate
ActiveSheet.Range("Test").Offset(4, 3).Select
				

13 : 指定した範囲を選択し、選択範囲を変更する方法

名前の範囲 "Database" を選択し、選択範囲を 5 行拡張するには、次の例を使用します。
Range("Database").Select
Selection.Resize(Selection.Rows.Count + 5, _
   Selection.Columns.Count).Select
				

14 : 指定した範囲を選択し、オフセットで選択範囲を変更する方法

名前の範囲 "Database" から 4 行下、3 列右のセル範囲を選択し、選択範囲を名前の範囲より 2 行、1 列拡張するには、次の例を使用します。
Range("Database").Select
Selection.Offset(4, 3).Resize(Selection.Rows.Count + 2, _
   Selection.Columns.Count + 1).Select
				

15 : 2 つ以上の指定した範囲を選択する方法

2 つの名前の範囲 "Test" と "Sample" の両方を選択するには、次の例を使用します。
Application.Union(Range("Test"), Range("Sample")).Select
				
この例を実行するには、2 つのセル範囲が同じワークシート上に存在する必要があります。Union メソッドはシートを越えて使用することはできません。たとえば、
Set y = Application.Union(Range("Sheet1!A1:B2"), Range("Sheet1!C3:D4"))
				
は実行できます。しかし、
Set y = Application.Union(Range("Sheet1!A1:B2"), Range("Sheet2!C3:D4"))
				
はエラー メッセージを返します。
'Union' メソッドは失敗しました。'_Application' オブジェクト

16 : 2 つ以上の指定した範囲の共有範囲 (重複範囲) の選択方法

2 つの名前の範囲 "Test" と Sample" の共有範囲を選択するには、次の例を使用します。
Application.Intersect(Range("Test"), Range("Sample")).Select
				
この例を実行するには、2 つの範囲が同じワークシート上に存在する必要があります。

この資料の例 17 から 21 までは、次のサンプル データを参照しています。それぞれの例は、サンプル データのセル範囲が選択されることを示しています。
   A1: 名前     B1: 売上       C1: 数量

   A2: a       B2: $10      C2: 5
   A3: b       B3:          C3: 10
   A4: c       B4: $10      C4: 5
   A5:         B5:          C5:
   A6: 合計     B6: $20      C6: 20
				

17 : 連続してデータが存在する列の最後のセルを選択する方法

連続してデータが存在する列の最後のセルを選択するには、次の例を使用します。
ActiveSheet.Range("a1").End(xlDown).Select
				
このコードをサンプルの表で使用すると、セル A4 が選択されます。

18 : 連続してデータが存在する列の下の空白セルを選択する方法

連続してデータが存在する列の下の空白セルを選択するには、次の例を使用します。
ActiveSheet.Range("a1").End(xlDown).Offset(1,0).Select
				
このコードをサンプルの表で使用すると、セル A5 が選択されます。

19 : 列内で連続してデータが存在する範囲全体を選択する方法

列内で連続してデータが存在する範囲全体を選択するには、次の例のいずれかを使用します。
ActiveSheet.Range("a1", ActiveSheet.Range("a1").End(xlDown)).Select
				
または
				
ActiveSheet.Range("a1:" & ActiveSheet.Range("a1"). _
      End(xlDown).Address).Select
				
このコードをサンプルの表で使用すると、セル A1 から A4 が選択されます。

20 : 列内でデータが存在する範囲全体を選択する方法

列内でデータが存在する範囲全体を選択するには、次の例のいずれかを使用します。
ActiveSheet.Range("a1",ActiveSheet.Range("a65536").End(xlUp)).Select
				
または
				
ActiveSheet.Range("a1:" & ActiveSheet.Range("a65536"). _
   End(xlUp).Address).Select
				
このコードをサンプルの表で使用すると、セル A1 から A6 が選択されます。

21 : セルの四角形の範囲の選択方法

複数のセルを囲む四角形の範囲を選択するには、CurrentRegion メソッドを使用します。CurrentRegion メソッドは空白行と空白列で囲まれたセル範囲を選択します。次の例は、CurrentRegion メソッドの使用方法です。
ActiveSheet.Range("a1").CurrentRegion.Select
				
このコードはセル A1 から C4 までを選択します。同じセル範囲を選択する他のコード例を以下に示します。
ActiveSheet.Range("a1", _
   ActiveSheet.Range("a1").End(xlDown).End(xlToRight)).Select
				
または
				
ActiveSheet.Range("a1:" & _
   ActiveSheet.Range("a1").End(xlDown).End(xlToRight).Address).Select
				
場合によっては、セル A1 から C6 までを選択できますが、この例では 5 行目に空白行があるので、CurrentRegion メソッドでは選択できません。次の例ではすべてのセルを選択します。
lastCol = ActiveSheet.Range("a1").End(xlToRight).Column
lastRow = ActiveSheet.Cells(65536, lastCol).End(xlUp).Row
ActiveSheet.Range("a1", ActiveSheet.Cells(lastRow, lastCol)).Select
				
または
				
lastCol = ActiveSheet.Range("a1").End(xlToRight).Column
lastRow = ActiveSheet.Cells(65536, lastCol).End(xlUp).Row
ActiveSheet.Range("a1:" & _
   ActiveSheet.Cells(lastRow, lastCol).Address).Select
				

22 : 可変長の隣接しない複数の列の選択方法

可変長の隣接しない複数の列を選択するには、次のサンプルの表とマクロの例を使用します。
   A1: 1  B1: 1  C1: 1  D1: 1
   A2: 2  B2: 2  C2: 2  D2: 2
   A3: 3  B3: 3  C3: 3  D3: 3
   A4:    B4: 4  C4: 4  D4: 4
   A5:    B5: 5  C5: 5  D5:
   A6:    B6:    C6: 6  D6:
				
StartRange = "A1"
EndRange = "C1"
Set a = Range(StartRange, Range(StartRange).End(xlDown))
Set b = Range(EndRange, Range(EndRange).End(xlDown))
Union(a,b).Select
				
このコードをサンプルの表で使用すると、セル範囲 A1:A3 と C1:C6 が選択されます。

マクロ例についての注意事項

  • シート名を指定しない場合はアクティブなシートを意味するので、ActiveSheet プロパティは通常省略できます。たとえば、次の指定の代わりに、
    ActiveSheet.Range("D5").Select
    						
    次のように使用できます。
    Range("D5").Select
    						
  • ActiveWorkbook プロパティも、通常省略できます。ブック名を指定しない限り、アクティブ ブックが指定されます。
  • Application.Goto メソッドを使用し、Range メソッドで 2 つの Cells メソッドを使用する場合、指定した範囲が別の (非アクティブの) ワークシートに存在するときは、Sheets オブジェクトを常に含める必要があります。次に例を示します。
    Application.Goto Sheets("Sheet1").Range( _
          Sheets("Sheet1").Range(Sheets("Sheet1").Cells(2, 3), _
          Sheets("Sheet1").Cells(4, 5)))
    					
  • 引用符で囲まれた項目 (たとえば、名前の範囲 "Test") には文字列型の変数も使用できます。たとえば、次の指定の代わりに、
    ActiveWorkbook.Sheets("Sheet1").Activate
    						
    次の指定を使用できます。
    ActiveWorkbook.Sheets(myVar).Activate
    						
    ここで、myVar の値は "Sheet1" です。

関連情報


この資料に記載されているサンプル コードの使用方法の関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
290140 サポート技術情報の Office XP プログラム用のサンプル コードを実行する方法

プロパティ

文書番号: 291308 - 最終更新日: 2007年6月14日 - リビジョン: 6.1
この資料は以下の製品について記述したものです。
  • Microsoft Office Excel 2007
  • Microsoft Office Excel 2003
  • Microsoft Excel 2002 Standard Edition
  • Microsoft Excel 2000 Standard Edition
  • Microsoft Excel 97 Standard Edition
キーワード:?
kbautomation kbmacro kbdtacode kbhowto kbprogramming KB291308
"Microsoft Knowledge Baseに含まれている情報は、いかなる保証もない現状ベースで提供されるものです。Microsoft Corporation及びその関連会社は、市場性および特定の目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。さらに、Microsoft Corporation及びその関連会社は、本文書に含まれている情報の使用及び使用結果につき、正確性、真実性等、いかなる表明・保証も行ないません。Microsoft Corporation、その関連会社及びこれらの権限ある代理人による口頭または書面による一切の情報提供またはアドバイスは、保証を意味するものではなく、かつ上記免責条項の範囲を狭めるものではありません。Microsoft Corporation、その関連会社 及びこれらの者の供給者は、直接的、間接的、偶発的、結果的損害、逸失利益、懲罰的損害、または特別損害を含む全ての損害に対して、状況のいかんを問わず一切責任を負いません。(Microsoft Corporation、その関連会社 またはこれらの者の供給者がかかる損害の発生可能性を了知している場合を含みます。) 結果的損害または偶発的損害に対する責任の免除または制限を認めていない地域においては、上記制限が適用されない場合があります。なお、本文書においては、文書の体裁上の都合により製品名の表記において商標登録表示、その他の商標表示を省略している場合がありますので、予めご了解ください。"

フィードバック

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com