ご回答者様
いつもお世話になっております。
VBA ワークシートの非表示の件です。
VBAベーシックの試験対策で下記問題が出てきました。
Sub sample()
Dim i As long
Dim tmp As Long
tmp =worksheets.Count ここにカウントが入る理由がわからない
For i = 1 to 5
If Worksheets(i).Name = "大阪” Then
Worksheets(i).Visible = False
End if
Next i
End sub
ワークシートの名前が大阪の場合、シートを非表示(Falseなので)にするソースですが
tmp =worksheets.Countに何故Countが入るか分かりません。
(選択肢ではItemもありました。)
お忙しい所恐れ入りますがよろしくお願いいたします。
No.4ベストアンサー
- 回答日時:
>今回はシートが複数あるのでCountを使用しているのでしょうか。
そうです。
これについては、すでに理解されていると思います。
For i = 1 to
If Worksheets(i).Name = "大阪” Then でシート1枚ずつ確認しているので
存在しているシート数を知る必要があります。なので worksheets.Count (コレクションに含まれるオブジェクトの数を表す)
>→具体的にどういう意味でしょうか。
Count、Item は返す型などからも、全く異なるものです。サポートページの式や使い方、例をご覧ください。
No.3
- 回答日時:
.Count 、.Item いずれも、この場合、worksheetsのプロパティですね。
.Countは、コレクションに含まれるオブジェクトの数を表す長整数型 (Long) の値を返します。
.Itemはコレクションから単一のオブジェクトを返します。
めぐみん_さんの回答にあるようにループ変数に対して設定するのであれば、.Countプロパティが適切です。
参考になるか分かりませんが、オブジェクトや プロパティについて調べるには、
VBE >表示>オブジェクトブラウザー で オブジェクトの選択を(検索などを)して上の?を押せばインターネットの環境にあれば
Office VBA リファレンスの該当ページがブラウザーでアクセスできます。
直接の場合は、下記の様な手順で
https://docs.microsoft.com/ja-jp/office/vba/api/ …
Office VBA リファレンス >> Excel >> オブジェクトモデル >> worksheetsオブジェクト >> プロパティ
この習慣や学習はスキル向上につながると思います。
一応、画像も付けときます。
いつもお世話になっております。
ご回答頂きありがとうございます。
.Countは、コレクションに含まれるオブジェクトの数を表す長整数型 (Long) の値を返します。
.Itemはコレクションから単一のオブジェクトを返します。
→具体的にどういう意味でしょうか。
今回はシートが複数あるのでCountを使用しているのでしょうか。
参考になるか分かりませんが、オブジェクトや プロパティについて調べるには、
→参考になりますので使用いたします。
引き続き宜しくお願い致します。
No.2
- 回答日時:
参考書とかだったらその出版社のHPで正誤表があるか調べてみては?
多分
For i = 1 To tmp
としたかったと思うのですよ。
そのブックに存在しているワークシートがいくつあるかは .Count で調べられます。
一番左を 1 として Worksheets(i) の i が 1 ~ ワークシートの数 までを順にワークシートの名前を調べるコードでしょうから。
いつもお世話になっております。
ご回答頂きありがとうございます。
正誤表に記載はなく・・・・
ただ、確かに5枚を超すと対応不可ですのでFor i = 1 to 5のが正しいですね。
ご回答頂きありがとうございます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) VBAについて 3 2022/06/19 18:19
- Visual Basic(VBA) 前回ご教授いただいたコードに覚えたてのループ処理で品名りんごAから順に20回for nextでループ 7 2023/01/13 22:01
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
- Excel(エクセル) 2つのVBAを一緒にしたら機能しなくなりました(エクセル) 7 2022/06/02 12:41
- PowerPoint(パワーポイント) エクセルのマクロについて教えてください。 1 2022/03/25 17:03
- Visual Basic(VBA) EXCELのVBAについて 2 2023/07/05 17:17
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 4 2023/05/26 10:43
- Excel(エクセル) なぜExit Subがあるのかわかりません 4 2023/02/19 12:34
- Visual Basic(VBA) 別シートから年齢別の件数をカウントしたい 6 2023/01/23 12:00
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
別のシートから値を取得するとき
-
VBAの天才来てください
-
【ExcelVBA】全シートのセルの...
-
ユーザーフォームに入力したデ...
-
VBA 存在しないシートを選...
-
エクセルのシート名変更で重複...
-
XL:BeforeDoubleClickが動かない
-
同じ作業を複数のシートに実行...
-
ExcelVBA シート名を複数セルか...
-
エクセルのマクロでアクティブ...
-
【VBA】指定した検索条件に一致...
-
excelのマクロで該当処理できな...
-
VBAでオブジェクト変数にsetし...
-
エクセル・マクロ シートの非...
-
ブック名、シート名を他のモジ...
-
Excelマクロのエラーを解決した...
-
VBA 検索して一致したセル...
-
Worksheet_Changeの内容を標準...
-
シートが保護されている状態で...
-
エクセルVBAでダブルクリックを...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
別のシートから値を取得するとき
-
ユーザーフォームに入力したデ...
-
Excelマクロのエラーを解決した...
-
excelのマクロで該当処理できな...
-
同じ作業を複数のシートに実行...
-
ExcelVBA シート名を複数セルか...
-
【ExcelVBA】全シートのセルの...
-
Excel マクロについての相談
-
VBA 存在しないシートを選...
-
実行時エラー'1004': WorkSheet...
-
特定の文字を含むシートだけマ...
-
ExcelのVBAのマクロで他のシー...
-
ブック名、シート名を他のモジ...
-
XL:BeforeDoubleClickが動かない
-
VBA 複数の各シートに行を追加...
-
エクセルのシート名変更で重複...
-
【Excel VBA】Worksheets().Act...
-
シートが保護されている状態で...
-
Excel VBA 複数行を数の分だけ...
-
for 文の 繰り返し処理に使える...
おすすめ情報