トップページ |
EXCEL VBA |
ACCESS VBA |
VBA 開発相談 |
VBA開発室 鹿児島ワイズ は、
・VBAの操作入門
・VBAの開発代行
をご提供しています。
|
|
トップページ >> EXCEL VBA >> 017.新しくブックを作る(ブック・シートの名前を操作する) 2/2
|
新しくブックを作る(ブック・シートの名前を操作する) 2/2
|
前回ご紹介したとおり、新規ブックを作成することは簡単ですが、
Worksbooks.Add
と記載するだけで、新規ブックを作成した場合は、Book○○ 、Sheet○○ とエクセル初期設定の名前が割り当てられます。
ブック名やシート名を指定することにより、その後の命令対象を明確に把握しやすくなることも多いので、今回はそのブック名やシート名を指定する方法をご紹介します。

ブック名の指定方法:
Dim BkName As String
BkName = Format(Now(), "yyyymmddhhmm") & ".xls"
この意味は BkNameという文字型変数を作成し、
その変数に 現在時刻をもとにした名前(=文字列)を代入する。
現在時刻をもとにした に関する箇所が、Format(Now(), "yyyymmddhhmm") です。
EXCEL VBA において Now() とは、現在の時刻を取得する命令です。 その取得した時刻を "yyyymmddhhmm" という形にそろえなさい というのが Format(Now(), "yyyymmddhhmm") という関数です。
今の時刻が 2013年(Year)11月(Month)5日(Day)14時(Hour)15分(Min) とすれば、この関数によって yyyymmddhhmm = 201311051415 となります。
BkName = Format(Now(), "yyyymmddhhmm") & ".xls" となっているので、具体的には
BkName = 201311051415.xls
となります。これで ブック名の指定が完了しました。(まだブックは作成されていません)
Dim wbn As Workbook
Set wbn = Workbooks.Add
wbn.SaveAs BkName
Dim wbn As Workbook とは、 wbn を Workbook 型の変数と宣言した という意味です。この Workbook 型 はオブジェクト型と言われ、オブジェクト型に値を代入する場合は、参照という記載方法をとらなければなりません。
それが Set wbn = Workbooks.Add です。この参照により 新規ブックを wbn という変数に代入する という意味となります。そうすることで今後は wbn という名前のワークブックに対して、諸命令を実現できます。具体的には wbn.SaveAs BkName です。
wbn.SaveAs BkName とは、wbn を BkName という名前で保存しなさい という意味です。このことにより、 プログラム製作者が指定した名前で新規ブックが作成されることになります。
今度はワークシートの名前を変更することを考えましょう。
ワークシート名の指定方法:
今回の例では、ワークシートを2枚持った新規ブックを作成しました。すなわち、その新規作成されたブックには、Sheet1 と Sheet2 という2枚のシートが存在していることになります。ですので、それぞれのシートの名前を変更することを考えればよいのです。
Workbooks(BkName).Activate
Worksheets("Sheet1").Activate
ActiveSheet.Name = "シート1"
そこで、まず作業対象とするブックを選択しました。前述したように、その作業対象とするブックには Sheet1 が存在しているはずなので、その Sheet1 をアクティブ化(選択)しました。そのアクティブ化されたシートの名前プロパティを変更する命令が
ActiveSheet.Name = "シート1"
です。この命令により 選択された Sheet1 の名前を“シート1”に変更することになります。
これら一連の処理が ブック名の指定、シート名の指定 の方法です。このようなものは確実に記憶する必要はありません。パソコン等のどこかに仕舞い込んでいて、必要な時に コピー&ペースト で使い回してください。それで十分です。
長い文章 お疲れ様でした。
|
|
トップページ >> EXCEL VBA >> 次のページへ
|
|