EXCEL VBA ワークシートのアクティブ・選択・指定・グループ化(追加選択・複数選択)
EXCEL VBA ワークシートのアクティブ・選択・指定・グループ化(追加選択・複数選択)
今回は、ワークシートの取り扱い方法。アクティブシート・シートの選択・シートの追加選択・シートのグループ化の利用方法を説明いたします。EXCEL VBAでプログラムを作成するにあたり、特にワークシートの作業は、頻繁に利用します。その中のシートのグループ化は、複写処理などが一括に出来るので覚えるとプログラム作成の幅が広がります。それでは、3つのサンプルプログラムを交えて順番に説明いたします。
【指定するワークシートをアクティブ化します】
● Worksheetオブジェクト.Active
●『使用例』
Worksheets(“Sheet1”).Activate ’・・・ワークシート「Sheet1」をアクティブ化します。
【ワークシートを選択します】
● Worksheetオブジェクト.Select(Replace)
●『使用例①』
Worksheets(“Sheet1”).Select ’・・・ワークシート「Sheet1」を選択します。
●『使用例②』
Worksheets(“Sheet1”).Select ‘・・・ワークシート「Sheet1」を選択します。
Worksheets(“Sheet2”).Select False ‘・・・ワークシート「Sheet2」を追加選択します。
★【ワークシートにおけるActiveメゾットとSelectメゾットとは】
実行ボタンでシートを切り替える(Select:切替・選択)
下記のサンプルは、シートに実行ボタンを設置して、実行ボタン毎に指定したシートを切替えるサンプルプログラムです。
【作成手順】
①ワークシートの「TOP」に各支店の実行ボタンを作成します。
②作成した実行ボタンに「実行マクロ」を登録します。
【実行ボタンの設置方法は、下記URLを参照して下さい】
【プログラム実行条件】
・ワークシート名を「TOP」・「東京支店」・「大阪支店」・「福岡支店」・「仙台支店」にする。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
' ''******** AKIRA55.COM ******* https://akira55.com/sheets_select/ '------------------------------------------------------------------------- Sub Sheets_Select_Tokyo() Worksheets("東京支店").Select MsgBox "東京支店のシートを選択しました。" Worksheets("TOP").Select End Sub '------------------------------------------------------------------------- Sub Sheets_Select_Osaka() Worksheets("大阪支店").Select MsgBox "大阪支店のシートを選択しました。" Worksheets("TOP").Select End Sub '------------------------------------------------------------------------- Sub Sheets_Select_Fukuoka() Worksheets("福岡支店").Select MsgBox "福岡支店のシートを選択しました。" Worksheets("TOP").Select End Sub '------------------------------------------------------------------------- Sub Sheets_Select_Sendai() Worksheets("仙台支店").Select MsgBox "仙台支店のシートを選択しました。" Worksheets("TOP").Select End Sub '------------------------------------------------------------------------- |
(※各支店に切替後に、TOPに戻ります)
(画面クリックして拡大)
ワークシートを複数選択してプリンターへ出力します。(複数シート選択・シートを纏める・ワークシートのグループ化)
下記のサンプルプログラムは、ワークシートを複数選択してプリンターへ出力するサンプルプログラムです。
【実行手順】
①メッセージボックスが表示されて「各支店のワークシートを複数選択して出力しますか?」のメッセージが表示されます。
②「Yes」の場合、ワークシート「東京支店”, “大阪支店”, “福岡支店”, “仙台支店”」を選択します。
③複数選択したワークシートをプリンターへ出力します。(プレビュー画面表示)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
' '******** AKIRA55.COM ******* https://akira55.com/sheets_select/ ' Sub Sheets_Select02() 'ワークシート複数選択してを出力します。 'ワークシートの東京支店~仙台支店まで複数選択します。 Dim PRN As Integer Dim Ws As Variant PRN = MsgBox("各支店のワークシートを複数選択して出力しますか?", vbYesNo) If PRN = vbYes Then Ws = (Array("東京支店", "大阪支店", "福岡支店", "仙台支店")) 'ワークシート("東京支店", "大阪支店", "福岡支店", "仙台支店"をwsに纏めます)) Sheets(Ws).PrintOut Preview:=True '複数選択したワークシートをプリンターへ出力(プレビュー画面表示) Else MsgBox "NOを選択しました。処理を中断します。" End If End Sub ' |
(画面クリックして拡大)
雛形のワークシートをグループ化で他シートへ複写する
(書式のコピー・一括複写:FillAcrossSheets メゾット)
下記のサンプルプログラムは、ブック内のワークシートに雛形のシートがあり、この雛形シートを別のシートへグループ化で一括に複写するサンプルプログラムです。今回は、FillAcrossSheets メゾットを利用して簡単に、他のワークシートへ複写出来るようにプログラムを作成しております。
【実行手順】
①メッセージボックスが表示されて「”雛形の書式をシートを他のシートへ複写しますか?”」のメッセージが表示されます。
②「Yes」の場合、ワークシートをグループ化「”雛形”, “2020年度”, “2021年度”, “2022年度”」
③雛形シート:セル(A2:G13)をグループ化したシートへ一括複写を行います。
【プログラム実行条件】
●複写元:ワークシート名を”雛形”にする。
●複写先:ワークシート名を”2020年度”, “2021年度”, “2022年度”にする。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
' '******** AKIRA55.COM ******* https://akira55.com/sheets_select/ ' Sub Sheets_Select03() ' ワークシートをグループ化したシートに雛形書式を複写する。 Dim Ws As Variant Dim Sen As Integer Sen = MsgBox("雛形のシートを他のシートへ複写しますか?", vbYesNo) If Sen = vbYes Then Ws = (Array("雛形", "2020年度", "2021年度", "2022年度")) 'ワークシートを(雛形", "2020年度", "2021年度", "2022年度)をwsに纏めます)) Sheets(Ws).FillAcrossSheets Range:=Worksheets("雛形").Range("A2:G13") 'グループ化したシートにシート(雛形)のセル「A2:G13」を複写します。 Else MsgBox "キャンセルしました。" End If End Sub ’ |
(画面クリックして拡大)
また、VBAに関するテクニックや便利な手法などをこのサイトに掲載していきますので、定期的に参照していただけると幸いです。