Excel VBAでシートとブックの操作する
Excel VBAは、Microsoft Excelで使用できるプログラミング言語です。
Excelをより効率的に使用するためのプログラミング言語です。Excelをもっと便利に使いたい人におすすめのプログラミング言語です。Excel VBAを覚えると、Excelの作業が楽になります
具体的に出来ることは以下のとおりです。
- Excelの操作を自動化
- 独自の機能を作成
- データの分析・処理
- レポートの作成
- フォームの作成
- マクロの作成
このExcel VBAというカテゴリーでは、私が学んだExcel VBAのコツやテクニックを紹介していきます。
今回は、Excel VBAでシートとブックの操作する方法を今回ご紹介します。
Excel VBAでシートとブックの操作する方法
Excelのオブジェクトの階層
Excelのオブジェクトはこのように階層になっています。
Range(A1)は、セルA1を表しています。
Sheets(“Sheet1”).Range(A1)は、シート2のセルA1を表しています。
Workbooks(“Book1”).Sheets(“Sheet1”).Range(A1)は、Book1のSheet1のセルA1を表しています。
この構造を理解すれば、別のブックやシートのセルを指定することが出来ます。
Sheet2のセルA1を指定する場合は、Excel VBAのコードでは以下のように記述します。
Sheets(“Sheet2”).Range(“A1”)
又は、Sheet2は左から2番めにあるので、こういう記述も出来ます。
Sheets(2).Range(“A1”)
Excel VBAでシートを指定する具体例① Sheet2のセルA1に10と入力する
実際にExcel VBAでSheet2のセルA1に10と入力してみます。
以下のコードを入力します。
Sheet1を選択した状態で、F5キーを押します。
すると以下のようにSheet2のセルA1に10が入力されます。
Excel VBAでシートを指定する具体例② Excel VBAで別のブックであるBook1のSheet1のセルA1に300と入力する
Excel VBAで別のブックであるBook1のSheet1のセルA1に300と入力してみます。
以下のコードを入力します。
なおこの方法は、現在開いているブックのみ適用されます。
F5キーを押します。
すると以下のようにBook1のSheet1のセルA1に300が入力されます。
なお、もしRange(A1)とだけ記述して、シートもブックも指定していない場合はどうなるかというと、現在開いているブックのシートのセルA1というようになります。
Excel VBAでシートを指定する具体例③ Excel VBAでデータ抽出で使用した表を用いて、Excel入門を抽出したデータを、Sheet2にコピーする
前回のブログ記事でデータ抽出で使用した表を用いて、Excel入門を抽出したデータを、Sheet2にコピーするということを行います。
以下のコードを入力します。
最初に、Next iを改行し、前回のデータ抽出で学んだ方法でExcel入門のみ抽出するコードの
Range(“A1”).AutoFilter 3, “Excel入門”
記述します。
そして改行します。
そして以下のコードを入力します。
Range(“A1”).CurrentRegion.Copy Sheets(“Sheet2”).Range(“A1”)
Range(“A1”).CurrentRegion.Copyの説明をします。
CurrentRegionですが、これはデータが入っている表全体を指定するものです。
その後にCopyメソッドを記述することで、Excel入門のみ抽出した表をコピーします。
Sheets(“Sheet2”).Range(“A1”)の説明をします。
これは、コピー先は、Sheet2のA1という意味のコードです。
これでF5キーを押して実行します。
するとSheet1にExcel入門のみ抽出したされます。
そして、Sheet2にExcel入門のみ抽出したデータがコピーされます。
Excel VBAでシート名を変更する方法
Excel VBAでは、シート名を変更することが出来ます。
コードですが以下のように記述します。
Worksheets(“シート名を変更したいシート”).Name = “変更したいシートの名前”
“シート名を変更したいシート”ですが、例えばSheet1を変更したければ”Sheet1″と記述します。
“変更するシートの名前”、変更したいシート名にしたい名前、例えばSheet1の名前をシート1にしたければ、”シート1″と記述します。
具体例として、Sheet1を売上表、Sheet2をExcel入門という名前に変更してみます。
コードは以下のようになります。
以下のように、Sheet1が売上表、Sheet2がExcel入門とシート名が変更されます。