ワークシートを追加した上で
新たな処理を行う必要性が出てきます。
ワークシートを追加する場合の
基本コードは以下の通りです。
-------------------------------------------
Sub ワークシートを追加()
Worksheets.Add
End Sub
-------------------------------------------
この1行を記述するだけで
ワークシートを追加できます。
Excelのバージョンによりますが
2013以降はデフォルトのワークシート数がSheet1のみとなっており以前はSheet1~3までとなっています。
上記のコードを実行すると
以降のシート番号が自動で割り振られ
シートが生成されます。
※処理結果
ただし、VBAコードで処理を実行するとき
シートを指定したうえで、作業を行うことがあり
時に、Sheet番号を指定してするにはちょいと面倒だったりします。
そんなのいちいち覚えてられませんし。
余談ですが、Exceブックlを開いたままシートを生成すると
生成した数だけシート番号が上がっていきます。
しかし、ブックを開きなおすと、またそのシート番号は最初のSheet1から生成され始めます。
といっても、ブック内にSheet1があると飛ばされSheet2から生成されます。
(ここは覚えなくていです)
さらに横道にそれますが
シートを指定して処理を行う場合、
以下のように記述してワークシートを指定します。
-------------------------------------------
Sub ワークシート処理()
Sheets("指定したいシート名").Select
End Sub
-------------------------------------------
赤文字の箇所を指定したいシート名に変えて実行すると
そのシートを指定することが出来ます。
さて、ではシートを作成した時に任意のシート名を記述しておけば
希望通りの処理を行うことが出来ますね。
一連の処理を記述します。
・【新しいシート】という名称のワークシートを作る
・そのシートを指定する
・そのシートに算数の九九の結果をFor文を使って記述する
上記3つの処理を1つのプロシージャで作成してみます。
なお、シート名をつけたい時は
Worksheets.Addの次の行に
ActiveSheet.Name = "指定したいシート名"と記述するだけでOKです。
まずは、実行前のブックの画像です。
なんてことはない普通のシートです。
記述するコード画像です。
記述している内容は以下の通りです。
-------------------------------------------
Sub test()
Dim i, j, x As Long
'新しいシートを生成し、シート名を新しいシートに変更する
Worksheets.Add
ActiveSheet.Name = "新しいシート"
'新しいシートを選択する
Sheets("新しいシート").Select
'新しいシートに九九の表示を行う
For i = 1 To 9
For j = 1 To 9
x = j * i
Cells(j, i) = x
Next j
Next i
End Sub
-------------------------------------------
実行後の画像
新しいシートが作成され、九九の結果が記述されています。
では、もう少し詳しく説明させてください。
作成時シートを任意の場所にあらかじめ移動しておきたい場合は
以下のように記述します。
-------------------------------------------
Sub ワークシートを追加()
Worksheets.Add after:=Worksheets(Worksheets.Count)
End Sub
-------------------------------------------
これは作成したシートをまず、ブック内にあるシートの枚数をしらべます※赤文字の部分です。
で、そのシートの後(Afterの部分)に移動をさせるという記述です。
カッコ内のWorksheets.Countの部分はシート名で指定することが出来ます。
例):新しいシートというシートの後に移動させたい場合は
Worksheets.Add after:=Worksheets("新しいシート")となります。
シート名を指定する場合は、ダブルクォーテーションで囲ってあげてください。
また、指定しているシートの前に生成したい場合は
afterをbeforeに変えてあげれば、指定したシートの左隣に移動されます。
右隣がafterで左隣がbeforeと覚えておきましょう。
※シートの作成時に特に指定をしない場合は、
一番左側に新しいシートが生成されますので合わせて覚えておいてください。
0 件のコメント:
コメントを投稿