Excel VBA質問箱 IV

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

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


72 / 13645 ツリー ←次へ | 前へ→

【82105】配列でsheetをコントロール 初心者Q 22/12/25(日) 8:01 質問[未読]
【82106】Re:配列でsheetをコントロール 初心者Q 22/12/25(日) 19:05 発言[未読]
【82107】Re:配列でsheetをコントロール マナ 22/12/25(日) 20:45 発言[未読]
【82108】Re:配列でsheetをコントロール 初心者Q 22/12/29(木) 23:00 お礼[未読]

【82105】配列でsheetをコントロール
質問  初心者Q  - 22/12/25(日) 8:01 -

引用なし
パスワード
   基本が習得できていない所為かと思いますがエラーがでる背景がわかりません。
アドバイスをお願いできないでしょうか。


Sub 一部のsheetを表示する()

  Dim MyArray
   
  MyArray = Range("C6:C9")   'C6:C9に入力されたsheet名を配列に代入
  Worksheets(MyArray).Visible = True 'ここで型が一致しません実行時エラー13とでます。
 
End Sub

【82106】Re:配列でsheetをコントロール
発言  初心者Q  - 22/12/25(日) 19:05 -

引用なし
パスワード
   補足させていただきます。
bookには、Sheet1,Sheet2,Sheet3,Sheet4というsheetとがあり
Range("C6:C9")には、Sheet2,Sheet3,Sheet4というシート名が入力されています。
VBAはSheet1にて実行します。
(補足になっていないかもしれませんが)

【82107】Re:配列でsheetをコントロール
発言  マナ  - 22/12/25(日) 20:45 -

引用なし
パスワード
   ▼初心者Q さん:

Sub test()
  Dim ws As Worksheet
  Dim r As Range
  
  Set r = Worksheets("sheet1").Range("C6:C9")
 
  For Each ws In Worksheets
    If WorksheetFunction.CountIf(r, ws.Name) > 0 Then
      ws.Visible = True
    End If
  Next

End Sub

【82108】Re:配列でsheetをコントロール
お礼  初心者Q  - 22/12/29(木) 23:00 -

引用なし
パスワード
   どのの知識が不足しているのかおぼろげにわかりました。
ありがとうございました。取り急ぎお礼まで。

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