
EXCEL2003でVBAを独習中です。どうもselectとactivateの違いをなかなか理解できません。
例えば
sheets("sheet1").select と sheets("sheet1").activateの違いは何かということがわかりません。
まして activesheet.activate などと書かれていると、何でアクティブなシートをアクティブにしなければならないのだ?と思ってしまいます。
VBAに関しては、数回目の初心者ですので、何でも言ってください。
No.4
- 回答日時:
例えば、「書式」-「シート」-「表示しない」で一番左のシートを非表示にしたとします。
Sub Test1()
Worksheets(1).Activate
ActiveSheet.Range("A1").Value = Now
End Sub
Sub Test2()
Worksheets(1).Select
ActiveSheet.Range("A1").Value = Now
End Sub
その場合、Test1は動くけどTest2はエラーになります。
非表示シートは Active に出来るけど Select は出来ないようです。
選択(Select)しなくても Activeにすれば良いので、私はExcelVBAの記述で Select する必要はあまり無いと思っています。
マクロ記録は Select 多用ですが、、
> activesheet.activate などと書かれていると、
Excel97時代に、Activecell.Activate は良く使いました。
Excel97はシートに置いた CommandButton の Click処理ではこの記述を入れないとアクティブセルを見失う?(バグ?)事があったので。
でも activesheet.activate はあまり聞かないですね。
ご回答ありがとうございました。
私には、まだ難しいな。
また、activesheets.activate の件、これから悩まないですみそうです。そんなに古い参考書でもないのにな。
No.1
- 回答日時:
こんばんは。
Activate も Select も、ほぼ同じです。
ただ、Activate というのは、一つを選ぶ行為ですが、Select は、数に関係がなく選ぶことです。
>sheets("sheet1").select と sheets("sheet1").activateの違い
これに関しては、違いがありません。
> activesheet.activate などと書かれていると、
これは、知りません。ありえないわけではないけれど、ナンセンスです。
サンプル:
Sub Test1()
Sheets.Select
Sheet2.Activate
End Sub
'
Sub Test1a()
'選択した数を調べる
Sheets.Select
MsgBox ActiveWindow.SelectedSheets.Count
Sheet2.Activate
MsgBox ActiveWindow.SelectedSheets.Count
End Sub
'
Sub Test2()
'こちらは動かない。Activate は、複数を選択することが出来ません。
Sheets.Activate 'エラー発生
Sheet2.Select
End Sub
'こんなこともありえます。
Sub Test3()
Dim i As Integer
Worksheets(1).Select '初期シートを洗濯
For i = 1 To Worksheets.Count
If i Mod 2 = 1 Then '奇数のシートだけ選ぶ
Worksheets(i).Select False
End If
Next i
End Sub
なお、私だけかもしれませんが、こういうのは、1年経っても、2年経っても納得の行く説明が出来るようにはなりません。現象としては、捕らえることが出来ても、その都度、英語単語のように比較して覚えるようなことは辞めたほうがよいです。ややこしくなるだけです。
他にも、Cells と Range や、Sheet と Worksheet、Window と Workbook など、好みで選べることは出来ないにしても、頻度や使い分けの違いがあります。そして、当然、覚えるほうにも優先順位があります。もちろん、上達するにしたがって使い分けもありますが、入門編から、それを比較していったら、到底先には進めません。今回の場合は、Activate は忘れて、Select だけで、先に進んでください。知ったかぶりであれこれと書いても、自分が納得しないものを他人には通じないように思います。
なお、Activate は、実務上で必須になることがありますが、そういうことが出てくるのは、3年か4年先だと思っていいです。入門レベルでは、そういうのがあるなっていう程度で十分です。
ありがとうございます。
昨夜から、手元にある例文で、select と activate を入れ変えながらいろいろ試しています。
activateを頭の片隅に置き、selectでがんがん行こうと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 動きっぱなしです。止め方とプロシージャの間違いを教えて下さい! 5 2022/08/15 23:08
- Visual Basic(VBA) 指定の条件に応じたセルの場所に〇印(図形)を描く 2 2022/11/08 15:26
- その他(Microsoft Office) Excelのマクロについて教えてください。 1 2022/03/25 10:03
- Excel(エクセル) ②Excel 簡単にシートコピーしたら前日の残高と日付を変更させたい→マクロの記録でエラーが出ます 8 2022/07/16 20:40
- Excel(エクセル) マクロで最終行から上に検索を逆にしたい 1 2022/05/17 18:27
- Visual Basic(VBA) Sheet「状況」から、分類の年齢別カウント数をSheet「D表」へ転記する下記マクロを作っています 7 2022/12/14 17:57
- Visual Basic(VBA) ExcelVBA No.を自動連番で設定をしながらデータ入力をしたい 2 2022/08/03 18:19
- Excel(エクセル) エクセルのマクロでコピー後の貼り付け先を毎回指定したところにしたい 5 2022/08/12 10:47
- Excel(エクセル) エクセル VBAでシートのコピーを作りたい 1 2023/05/18 07:42
- Excel(エクセル) Excel VBAで、行の高さを、上下1文字分程度高くしたい 3 2023/04/23 00:17
関連するカテゴリからQ&Aを探す
今、見られている記事はコレ!
-
弁護士が語る「合法と違法を分けるオンラインカジノのシンプルな線引き」
「お金を賭けたら違法です」ーーこう答えたのは富士見坂法律事務所の井上義之弁護士。オンラインカジノが違法となるかどうかの基準は、このように非常にシンプルである。しかし2025年にはいって、違法賭博事件が相次...
-
釣りと密漁の違いは?知らなかったでは済まされない?事前にできることは?
知らなかったでは済まされないのが法律の世界であるが、全てを知ってから何かをするには少々手間がかかるし、最悪始めることすらできずに終わってしまうこともあり得る。教えてgooでも「釣りと密漁の境目はどこです...
-
カスハラとクレームの違いは?カスハラの法的責任は?企業がとるべき対応は?
東京都が、客からの迷惑行為などを称した「カスタマーハラスメント」、いわゆる「カスハラ」の防止を目的とした条例を、全国で初めて成立させた。条例に罰則はなく、2025年4月1日から施行される。 この動きは自治体...
-
なぜ批判コメントをするの?その心理と向き合い方をカウンセラーにきいた!
今や生活に必要不可欠となったインターネット。手軽に情報を得られるだけでなく、ネットを介したコミュニケーションも一般的となった。それと同時に顕在化しているのが、他者に対する辛らつな意見だ。ネットニュース...
-
大麻の使用罪がなかった理由や法改正での変更点、他国との違いを弁護士が解説
ドイツで2024年4月に大麻が合法化され、その2ヶ月後にサッカーEURO2024が行われた。その際、ドイツ警察は大会運営における治安維持の一つの方針として「アルコールを飲んでいるグループと、大麻を吸っているグループ...
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelの「0」だけ非表示、小数...
-
Excelで複数シートの選択セルを...
-
Excelシートの保護時にデータの...
-
エクセルで1月0日と表示される!!
-
複数シートの同じセル内容を1シ...
-
エクセルで、加筆修正したセル...
-
日付が未入力の際はゼロか、空...
-
ExcelでTODAY関数を更新させな...
-
EXCELのハイパーリンクのセルを...
-
エクセルで条件に一致したセル...
-
別シートのセルを絶対参照にする
-
Office2021のエクセルで米国株...
-
エクセル ハイパーリンクで画像...
-
エクセルのルビがついたセルを...
-
iPhoneのExcelアプリで、別のシ...
-
エクセルで複数のシートの同じ...
-
ハイパーリンク で『指定された...
-
エクセル名前の定義で行挿入で...
-
シート参照で変数を使いたい(EX...
-
エクセルで指定のセルのみ完全...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
iPhoneのExcelアプリで、別のシ...
-
Excelの「0」だけ非表示、小数...
-
Excelで複数シートの選択セルを...
-
Excelシートの保護時にデータの...
-
エクセルで条件に一致したセル...
-
エクセルで1月0日と表示される!!
-
日付が未入力の際はゼロか、空...
-
ExcelでTODAY関数を更新させな...
-
EXCELのハイパーリンクのセルを...
-
別シートのセルを絶対参照にする
-
Excelでスクロールすると文字が...
-
複数シートの同じセル内容を1シ...
-
マクロ 新しいシートにデータ...
-
エクセルで複写のように自動入...
-
エクセルで、加筆修正したセル...
-
エクセル ハイパーリンクで画像...
-
ハイパーリンク で『指定された...
-
エクセルで20万行あるシート...
-
エクセルで特定のセルの値を別...
-
INDIRECT(空白や()がある文字列...
おすすめ情報