GEN MUTO'S HOMEPAGE  エクセル大事典  エクセルVBAを極める

エクセルExcel大事典 エクセル大事典TOPページへ
 ■ エクセルVBA中級編−ワークシートを使いこなそう
  セルの選択をマスターしよう!
 
■ セルの選択をマスターしよう!

数回にわたってワークシート上のセルを操作するExcel VBAについて解説を行います。
今回はセルを選択する様々な方法について解説していきます。

セルを選択する

Excel VBAにはセル、またはセル範囲を選択する動作を行うためのメソッドが数多く用意されています。これらのメソッドを知ることで、より効率的にワークシートを使用したプログラミングを行うことが可能です。

■Selectメソッド、Activateメソッド

セル、またはセル範囲を選択します。

[書式]
オブジェクト.Select
オブジェクト.Activate

オブジェクトにはRangeオブジェクトを指定します。ワークシートの指定を省略した場合は、アクティブシートのセルを選択します。

(注意)ワークシートを指定してセルの選択を行う場合、あらかじめ対象となるワークシートをアクティブにしておく必要があります。アクティブでないワークシートに対してSelectメソッドやActivateメソッドを実行すると実行時エラーが発生するので注意してください。

例:
Range("A1:C3").Select
Worksheets("Sheet1").Range("A1:C3").Select
Worksheets("Sheet1").Range("A2").Activate
 
1つめの例では、アクティブシートの「A1〜C3」のセル範囲を選択します。2つ目の例では「Sheet1」シートの「A1〜C3」のセル範囲を選択します。3つ目の例では、「Sheet1」シートの「A2」セルをアクティブにします。2つ目と3つ目の例では、「Sheet1」シートがアクティブになっていない場合、実行時エラーが発生します。

※ アクティブセルとは、セル範囲を選択した状態で現在操作の対象となっているセル(色の付いていないセル)を指します。例えば「Range("A1:C3").Select」では、「A1〜C3」のセル範囲を選択しますが、アクティブなセルは「A1」セルです。「Range("A2").Activate」で、アクティブなセルが「A1」セルから「A2」セルに変更されます。

■Gotoメソッド

指定されたセル、またはセル範囲に移動します。

[書式]
Application.Goto セル範囲, スクロール

セル範囲には移動先のセル範囲を指定します。ワークシートを指定してセル範囲を指定した場合、指定したワークシートがアクティブでなくても、アクティブにしてセル範囲を選択します。

スクロールにはTrueまたはFalseを指定します。Trueを指定した場合、移動先のセルが画面の左上端になるようにスクロールして表示します。省略するとFalseになります。Falseの場合、スクロールしません。

例:
Application.Goto Worksheets("Sheet1").Range("A1:C3")
Application.Goto Worksheets("Sheet2").Range("AA1:AC3"), True

上の例では、「Sheet1」シートの「A1〜C3」のセル範囲を選択します。下の例では、「Sheet2」シートの「AA1〜AC3」のセル範囲を選択します。それぞれのシートがアクティブでない場合でも、アクティブにしてセル範囲を選択します。

■Resizeプロパティ

現在参照しているセル範囲を、リサイズしたセル範囲の参照を得ることができます。

[書式]
オブジェクト.Resize(行数, 列数)

オブジェクトには、Rangeオブジェクトを指定します。

行数には、新しい範囲の行数を指定します。列数には、新しい範囲の列数を指定します。省略した場合は、現在選択している行数・列数がそのまま適用されます。

例:
Sub Test()
  Range("A1:C3").Select
  Selection.Resize(4, 4).Select
End Sub

このプロシージャを実行すると、アクティブシートの「A1〜C3」のセル範囲を選択し、行数「4」・列数「4」にリサイズします。リサイズ後の選択されたセル範囲は「A1〜D4」になります。

Sub Test()
  Range("A1:C3").Select
  Selection.Offset(1).Resize(Selection.Rows.Count - 1).Select
End Sub

このプロシージャを実行すると、アクティブシートの「A1〜C3」のセル範囲を選択します。「Selection.Offset(1)」で、参照範囲の左上端セルを1行下に移動し、「Selection.Rows.Count - 1」で選択されている行数「3」を「2」に変更してリサイズします。リサイズ後の選択されたセル範囲は「A2〜C3」になります。

※ Resizeプロパティは、指定されたセル範囲の左上端のセルを基準にしてリサイズします。例えば「E10〜G15」のセル範囲を参照している場合、基準となるセルは「E10」になります。リサイズ後のセル範囲は、この「E10」からの行数と列数に変更されます。

■Unionプロパティ

複数のセル範囲を結合します。

[書式]
Apllication.Union(セル範囲1, セル範囲2, …)

セル範囲には、まとめたいセル範囲を「,」で区切って指定します。引数には、最低2つ以上のセル範囲を指定してください。セル範囲が1つの場合、コンパイルエラーが発生します。

例:
Sub Test()
  Range("A1:C3").Select
  Application.Union(Selection, Range("E1:G3")).Select
End Sub

このプロシージャを実行すると、アクティブシートの「A1〜C3」のセル範囲を選択した後、Unionプロパティで「E1〜G3」のセル範囲を結合して選択します。


以上、セルを選択するいろいろな方法について解説しました。
セル範囲を自由に選択することで、さらに操作性の良い、業務用アプリケーションをユーザーに提供することが可能です。今回の解説について、十分理解しておいてください。

次は、セルを操作する様々な方法について詳しく解説を行います。

>> 次の話にすすむ


サイト内検索ができます

Microsoft Most Valuable Professional

Microsoft MVP Excel
武藤 玄 プロフィール
 

■■■ 執筆した書籍 ■■■
 

EXCEL VBA 業務自動化
 

Excel VBA を5日でマスターする本
 

仕事を速くする Excel VBA 入門
 

Excel VBAと業務改善のポイントがわかる本
 

Access VBA ベーシック スタンダード
 

Excel VBA アクションゲーム作成入門
 

■■■ 連載中の記事 ■■■
 

Excel VBAで業務改善!
 

実務で使うExcel VBA
 


TOPページ


■ エクセルVBA超入門

 ・9ステップで"Hello World!"
  からオブジェクト指向まで!
  1."Hello World!"を表示しよう
  2.基本はデータの入出力
  3.繰り返し処理
  4.シートで簡易データベース
  5.名前をつけよう
  6.構造化プログラムに挑戦
  7.構造体を使ってみよう
  8.フォームを使ってみよう
  9.オブジェクト指向に挑戦

■ エクセルVBA中級編

 ・VBAでいろんなテクニック
  変数・関数のスコープ
  引数の参照方法を明示
  配列の中身を一気に複写
  識別子がよいコードを作る
  データ定義型をもっと知ろう
  定数と列挙型を活用しよう
  エラー処理の重要性1
  エラー処理の重要性2
  いろいろな条件分岐
  いろいろな繰り返し処理
  演算子について知ろう
  文字列操作 連結 変換 置換
  文字列操作 検索 比較 書式
  日付操作関数を知ろう
  数値操作・評価・その他関数
  並び替えソートをマスター
  いろいろな検索をマスター
  VBEditorを使いこなそう
  マクロの記録を活用しよう1
  マクロの記録を活用しよう2
  VBAからVBEを操作しよう1
  VBAからVBEを操作しよう2
  VBAからVBEを操作しよう3
 ・ワークシートを使いこなす
  セルの参照をマスターしよう
  セルの選択をマスターしよう
  セルの操作をマスターしよう
  セルの書式設定をマスターしよう
  行・列の操作をマスターしよう
  シートの参照をマスターしよう
  シートの操作をマスターしよう
  ブックの操作をマスターしよう
  ウィンドウの操作をマスターしよう
  イベントプロシージャを活用しよう
  ワークシートを印刷しよう1
  ワークシートを印刷しよう2
  音声(読み上げ)機能を操作しよう
  グラフを操作しよう
 ・ユーザーフォームを使いこなす
  ユーザーフォームを使おう
  UserFormsオブジェクト
  Labelコントロール
  TextBoxコントロール
  ComboBoxコントロール
  ListBoxコントロール
  CheckBoxコントロール
  OptionButtonコントロール
  ToggleButtonコントロール
  CommandButtonコントロール
  ScrollBarコントロール
  SpinButtonコントロール
 ・VBA関数の一覧
  Aから始まる関数の一覧
  Cから始まる関数の一覧
  Dから始まる関数の一覧
  Eから始まる関数の一覧
  Fから始まる関数の一覧
  Gから始まる関数の一覧
 
■ エクセルVBAを極める
 VBAスーパーテクニック
 
 ・データベースへ接続してみよう!
  CSVファイルへの接続
  ワークシートへの接続
  mdbファイルへの接続
  SQL Serverへの接続
  ADOレコードセットの操作1
  ADOレコードセットの操作2
 ・ファイルを操作してみよう!
  FileSystemObjectの操作
  Drive File Folderの操作
  TextStream ダイアログ
  ステートメントでファイル操作1
  ステートメントでファイル操作2
 ・他アプリと連携してみよう!
  ActiveXオートメーションの操作
 ・ゲーム技でマクロを超える
  エクセルで音を鳴らす1
  エクセルで音を鳴らす2  
  スクリーン座標を取得
  様々なイベント取得
  リボンUIを制御しよう1
  リボンUIを制御しよう2
  シート上でアニメを動かそう
 
■ 一歩上行くエクセル
 基本操作の完全マスター!

 
 ・あなたはいったい
  エクセルで何をしたいのか?
  エクセルで業務効率化
  エクセル関数を使いこなす
  エクセルの便利技
  エクセルは最高の帳票ツール
 ・エクセル基本操作上級編!
  セル選択、コメント、シリアル値
  オート機能を使いこなそう!
  参照、条件付書式、入力規則
  関数をもっと理解しよう!
  配列数式を有効利用しよう!
  データの正規化をしよう!
  ショートカットキーを利用しよう1
  ショートカットキーを利用しよう2
  Office用アプリを作成しよう!
  PowerPivotとExcelで簡単BI!
 ・世間の誤ったエクセルの
  べからず集
  エクセルで文章を書くべからず
  エクセルで図形を描くべからず
  エクセルでシステムをつくるな
 
■ エクセル関連その他

 ・エクセルコミニュティにあなたも
  参加しませんか?
  Excel関連リンク・コミニュティ
 ・VBの理解がVBAをマスターする
  最短距離!
  VB関連の老舗・大家サイト
 ・エクセルExcel大事典掲示板
 ・プライバシーポリシー

2000アイテムを超えるラベルを販売
送料無料、即納対応の優良ショップ
今買っているラベルより確実に安い!
OAラベルの販売専科グラフトラベル




エクセルExcel大事典ははリンクフリーです エクセル大事典Excel大事典
お問い合わせはこちら gengengen@yahoo.co.jp

Copyright© Gen Muto 武藤 玄 All Rights Reserved,