Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


9624 / 13644 ツリー ←次へ | 前へ→

【26324】シートカウント へぼ 05/7/1(金) 14:23 質問[未読]
【26326】Re:シートカウント MARBIN 05/7/1(金) 14:33 回答[未読]
【26327】Re:シートカウント 知ろう途 05/7/1(金) 14:38 回答[未読]
【26330】Re:シートカウント へぼ 05/7/1(金) 15:42 質問[未読]
【26331】Re:シートカウント 知ろう途 05/7/1(金) 15:59 発言[未読]
【26332】Re:シートカウント りん 05/7/1(金) 16:32 発言[未読]

【26324】シートカウント
質問  へぼ  - 05/7/1(金) 14:23 -

引用なし
パスワード
   シートカウントを使うときに、開いてるbookを指定できないですか?

【26326】Re:シートカウント
回答  MARBIN  - 05/7/1(金) 14:33 -

引用なし
パスワード
   こういうことでしょうか?

MsgBox ActiveWorkbook.Worksheets.Count

【26327】Re:シートカウント
回答  知ろう途  - 05/7/1(金) 14:38 -

引用なし
パスワード
   例として

Sub A()

  'ファイル名を指定する場合
  MsgBox Workbooks("○△□.xls").Worksheets.Count
  
  '2番目に開いているファイルを指定する場合
  MsgBox Workbooks(2).Worksheets.Count

End Sub

【26330】Re:シートカウント
質問  へぼ  - 05/7/1(金) 15:42 -

引用なし
パスワード
   >Sub A()
>
>  'ファイル名を指定する場合
>  MsgBox Workbooks("○△□.xls").Worksheets.Count
>  
>  '2番目に開いているファイルを指定する場合
>  MsgBox Workbooks(2).Worksheets.Count
>
>End Sub
開いているブックの
シートの数が4つなのに、6個となってしまいます。
原因は何でしょう?

お願いします。

【26331】Re:シートカウント
発言  知ろう途  - 05/7/1(金) 15:59 -

引用なし
パスワード
   >原因は何でしょう?

ホント何ででしょう?

Sub test()
 Dim i As Long
  
  For i = 1 To Worksheets.Count
   Worksheets(i).Visible = True
  Next

End Sub

でも6個になりませんかね??
私も名前の通りまだまだ勉強不足の身なもので・・・

【26332】Re:シートカウント
発言  りん E-MAIL  - 05/7/1(金) 16:32 -

引用なし
パスワード
   こんにちわ。

行番号が実際のWorkbookのIndexですので、非表示の個人用マクロブック等があれば、2番目に開いたファイルのIndexは3番目になります。

ログをとって対象を間違えていないか確認してみるのも1つの手です。
Sub Test()
  Dim wb1 As Workbook, ws1 As Worksheet
  Dim ws2 As Worksheet, II As Long, JJ As Long
  'ログ表示用シート
  Set ws2 = Application.Workbooks.Add.Worksheets(1)
  '
  For Each wb1 In Application.Workbooks
   'ログ取り用ブック以外で処理
   If Not wb1 Is ws2.Parent Then
     II = II + 1: JJ = 1
     With ws2.Cells(II, JJ)
      .Value = wb1.Name
      If wb1.Windows(1).Visible = False Then .Font.ColorIndex = 3
     End With
     For Each ws1 In wb1.Worksheets
      JJ = JJ + 1
      With ws2.Cells(II, JJ)
        .Value = ws1.Name
        Select Case ws1.Visible
         Case xlHidden: .Font.ColorIndex = 5 '普通に非表示ならば青
         Case xlVeryHidden: .Font.ColorIndex = 3 '非表示リストにものらない設定ならば赤
        End Select
      End With
     Next
  End If
  Next
  Set wb2 = Nothing: Set ws2 = Nothing
  Set ws1 = Nothing
End Sub

9624 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free