Home » WSH・Windows Script Hostの使い方 » ExcelのN枚目のシートを選択するVBScript

ExcelのN枚目のシートを選択するVBScript

WSH, Windows Script Host, VBScript, Excel

「wsh excel 3つ目シート選択」
という検索キーワードでのアクセスがありました。

Excelブックの、3枚目のシートを選択するスクリプトを探していた方による検索です。

[スポンサードリンク]

N枚目のシートを選択するサンプルスクリプト

以下のコードを含んだ拡張子「.vbs」のファイルを作成して、Excelファイルをドラッグアンドドロップすると、3枚目のシートが選択されて保存し直されます。

Option Explicit
'-- main begin ----
Const NUM = 3 ' 選択したいシート番号

Dim args
Set args = Wscript.Arguments
If args.Count < 1 Then
 MsgBox NUM & "枚目のシートを選択したいExcelファイルを、ドラッグ&ドロップしてください。"
 Wscript.Quit
End If

Private xls
Set xls = CreateObject("Excel.Application")
xls.Visible = False

Dim fso
Set fso = CreateObject("Scripting.FileSystemObject")
Dim f_path ' ファイルのフルパス
For Each f_path in args
 Select Case UCase(fso.GetExtensionName(f_path))
  Case "XLS", "XLSX", "XLSM", "XLSB"
   Call selectTheSheet(f_path)
  Case Else
   MsgBox fso.GetFileName(f_path) & "はExcelファイルではありません。"
 End Select
Next
Set fso = Nothing

xls.Quit
Set xls = Nothing
MsgBox "スクリプトが終了しました。"
'-- main end ----


Private Sub selectTheSheet(ByVal fullPath)
 Dim bk
 Set bk = xls.Workbooks.Open(fullPath)

 With bk.Sheets
  If .Count >= NUM Then
    If .Item(NUM).Visible Then
     .Item(NUM).Select
     bk.Save
    End If
  End if
 End With

 bk.Close
 Set bk = Nothing
End Sub

サンプルスクリプトの解説

何枚目のシートを選択するのかを、
  Const NUM = 3
定数NUMで指定します。

選択を行っているのは、SubプロシージャselectTheSheetです。

N枚目のシートが存在しなかったとき、N枚目のシートが非表示になっていたときに、どうしたいのかが不明ですので、ここでは存在していて、
  With bk.Sheets
   If .Count >= NUM Then

非表示になっていなければ、
     If .Item(NUM).Visible Then

選択して上書き保存しています。
      .Item(NUM).Select
      bk.Save

[スポンサードリンク]

Home » WSH・Windows Script Hostの使い方 » ExcelのN枚目のシートを選択するVBScript

「WSH・Windows Script Hostの使い方」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.