No.5ベストアンサー
- 回答日時:
> Windows("第6章.xlsm:2").Activate
ウィンドウはそもそも選択できませんから、
Activate メソッド
しか用意されてません。
どんなオブジェクトでも共通するメソッドがあるのではなくて
似たような処理をする(言葉にすれば同じことをする)メソッドに
同じ名前が付いている。と考えた方が良いです。
私は、解りやすくするために、説明の為に、.Select は選択、と端的な書き方をしました。
それから、もうひとつのスレにも、同趣旨のことを書きましたが、
本で勉強するなら、その本が導くままに一度最後まで進めた方が良いと思います。
途中で質問すると、却って混乱してしまうかも知れませんから。
例えば、円周率を3、ということにして簡単な説明をしようとしているテキストがあったとして
それを読んだ人が、「円周率は3ですか?」と質問掲示板で質問したところで
ご本人は混乱するだけだと思います。
何が悪いとかそういう話じゃなくて、教わるなら、
ひとりに(ひとつの教え方で)教わった方が初学の場合は成功しやすい
という意味です。
早速のご回答ありがとうございます。
> Windows("第6章.xlsm:2").Activate
ウィンドウはそもそも選択できませんから、
Activate メソッド
しか用意されてません。
確かに、Selectに変えたところエラーになりました。
ようやく理解できました。
ご回答者さんの言われる案も一つの道だと考えさせられました。
まずは全部終わらせてから、質問したいと思います。
ただもう終わるところで、焦りが出てきたのかも知れません。
以後気を付けます。
大変、勉強になりました。
有難うございます。
No.6
- 回答日時:
極々簡単に覚えるなら
Activate⇒とりあえず、表示させたい時
Select⇒選択して、その後に何らかの処理をしたい時
くらいで(私は)困ってなかったりします。
慣れてくると、Selectすらもあまり使わなくなったりしますけど・・
Range("A1:A5").Select
Selection.copy
↓
Range("A1:A5").copy
ってな具合。
まぁ、こればかりは好みですから^^;
ご回答ありがとうございます。
Activate⇒とりあえず、表示させたい時
Select⇒選択して、その後に何らかの処理をしたい時
大変、砕いた説明文に助かります。
良い勉強になりました。
ありがとうございます。
No.4
- 回答日時:
ひとつだけ選択する場合でも、
選択したいときは、.Selectメソッドを使うべきです。
理由は#2に挙げた失敗し易い例がある為です。
参考書や、下手するとマクロの記録でさえも
.Activeteを優先させる嫌いがありますが、
実際、選択するメソッドは、ただひとつ、.Select だけです。
使い分けが難しいなら、尚のこと、選択は.Select とおぼえてください。
この回答への補足
再度、ご回答ありがとうございます。
こちらが教本の内容の一部なのですが、
ここでのActivateは(複数でもないのに)なぜなのでしょうか?
また、ActivateをSelectに変更するのもありなのでしょうか?
お手数おかけしますがご回答頂ければ助かります。
ActiveWindow.NewWindow
ActiveWindow.NewWindow
Windows.Arrange xlArrangeStyleTiled
Windows("第6章.xlsm:2").Activate
Worksheets("得意先リスト").Select
Windows("第6章.xlsm:1").Activate
Worksheets("商品リスト").Select
Windows("第6章.xlsm:3").Activate
No.3
- 回答日時:
SelectさんちのActivate君という感じですかね。
ちょっと説明が難しいんですが(^_^;Selectというのはひと塊を選択するもので、Activateは単品にスポットを当てるというものです。
複数セルをドラッグして選択したときに、左上のセルだけ白くなっているのに気づいてませんか?
あの白いのがActivate状態。
この状態で試しにTabやEnterを押すと、白いセルが移動すると思います。これがActivateセルを選択しなおしてる状態。
この移動もSelectの範囲内でしか行われませんよね。
だから本来の使い分けは、複数を対象にする場合はSelect、一つだけ選択したい場合はActivateというのが正しいです。
まあ、社長も従業員も自分一人の会社なら、会社を選んでもその人を呼ぶことになるというのと同じで、一つのセルとかを選ぶ場合はどちらでも使えますよという形ですね。
この回答への補足
ActiveWindow.NewWindow
ActiveWindow.NewWindow
Windows.Arrange xlArrangeStyleTiled
Windows("第6章.xlsm:2").Activate
Worksheets("得意先リスト").Select
Windows("第6章.xlsm:1").Activate
Worksheets("商品リスト").Select
Windows("第6章.xlsm:3").Activate
こちらが教本の内容の一部なのですが、
ここでのActivateは(単品でもないのに)なぜなのでしょうか?
お手数おかけしますがご回答頂ければ助かります。
とても分かりやすい説明ありがとうございます。
初歩の初歩レベルの私は選択=Selectと覚えていたのですが
教本でActivateが出てきてしまい、混乱している状態です。
再度詳しくご相談させていただきたいので
補足・又は新規相談として投稿しようと思います。
ありがとうございます。
また単品・複数と覚えるのが基本とのこと、勉強になります。
No.2
- 回答日時:
こんにちは。
.Select メソッドについては、普通に日本語として"選択する"と覚えていて差し支えありません。
.Activate メソッドは、基本的に
選択された複数オブジェクトの中でアクティブにしたいものを指定して
ActiveObjを移動(変更)するメソッドです。
但し、.Activate メソッドで指定したオブジェクトが選択中でない場合だけ
.Select メソッドと同じ挙動を示します。
失敗し易い例を2例挙げておきます。
Sub Re7740084_Range()
Range("B2:E5").Select
MsgBox "Range(""B2:E5"").Select を実行しました"
Range("B2").Activate
MsgBox "Range(""B2"").Activate を実行しました"
Range("E5").Activate
MsgBox "Range(""E5"").Activate を実行しました"
End Sub
Sub Re7740084_Sheets()
Worksheets(Array(1, 2)).Select
MsgBox "Worksheets(Array(1, 2)).Selectt を実行しました" & vbLf _
& "選択中のシート数 は " & ActiveWindow.SelectedSheets.Count
Worksheets(2).Activate
MsgBox "Worksheets(2).Activate を実行しました" & vbLf _
& "選択中のシート数 は " & ActiveWindow.SelectedSheets.Count
End Sub
ご回答有難うございます。
せっかく失敗例まで記載していただいのですが
私のレベルが低いのでまだ追いつきません。
また私もSELECTは選択で覚えていた矢先に、教本でActivateが出てきてしまい
?の状況でした。
>Activate メソッドは、基本的に
選択された複数オブジェクトの中でアクティブにしたいものを指定して
ActiveObjを移動(変更)するメソッドです。
とても芯をついたご説明ありがとうございます。
もう少し頭を整理したいと思います。
助かりました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 統計学 どの統計を使えばいいのか教えてください(EZ-Rを使用) 5 2022/10/11 13:28
- Visual Basic(VBA) Access VBAから使用したExcelプロセスを閉じる方法について 4 2022/06/08 17:50
- Excel(エクセル) ExcelのFSO(ファイルシステムオブジェクト)について学びたいのですが。。。 5 2022/12/15 18:06
- Visual Basic(VBA) Excel VBA フォルダ存在チェックについて Aフォルダの中にBフォルダがあります。 IF構文を 3 2022/09/16 19:36
- Visual Basic(VBA) 動きっぱなしです。止め方とプロシージャの間違いを教えて下さい! 5 2022/08/15 23:08
- 日本語 【合理主義】という言葉の意味について教えてください。 4 2022/08/30 23:21
- Visual Basic(VBA) VBAでプロセデュア間で共有できるエリアの設定方法は? 3 2023/04/15 19:06
- Excel(エクセル) Excel vbaについて、知恵を下さい。 下表①で出勤が「あり」になっている対象者を隣のシートにあ 1 2022/10/20 18:58
- その他(Microsoft Office) Excelのマクロについて教えてください。 1 2022/03/25 10:03
- Excel(エクセル) Excel VBA 空白行があるセル範囲に色を付ける 3 2022/06/13 15:58
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルVBAで、条件に一致する...
-
JSPで<SELECT>の中にDBから持っ...
-
Refreshメソッドの使い方
-
mainメソッドのthrows節で設定...
-
DataGridViewでセルクリックイ...
-
Labelコントロールに数字を代入...
-
VBScriptからストアドプロシー...
-
onClickで関数呼出し後に、結果...
-
final修飾子を使っているのに、...
-
VBPをダブルクリックするとたま...
-
IE制御でのタブの処理について
-
vbaエクセルマクロ RemoveDupli...
-
タブコントロールの問題 (VB)
-
c#でVBのcall的役割を果たすコ...
-
エクセルのマクロでプリンタを...
-
メソッドの英単語の意味について
-
boolean型のフィールドとゲッタ...
-
エクセルVBAにおけるON TIMEメ...
-
JFileChoserをsetAlwaysOnTop(t...
-
ExcelVBA Findメソッドで検索の...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルVBAで、条件に一致する...
-
Labelコントロールに数字を代入...
-
final修飾子を使っているのに、...
-
エクセルVBAにおけるON TIMEメ...
-
コマンドプロンプト実行後に画...
-
mainメソッドのthrows節で設定...
-
DataGridViewでセルクリックイ...
-
javascriptからjavaを呼び出したい
-
VBPをダブルクリックするとたま...
-
onClickで関数呼出し後に、結果...
-
ExcelのxlDialogInsertPictureで。
-
Refreshメソッドの使い方
-
JSPで<SELECT>の中にDBから持っ...
-
【sendkeysメソッドが動かずに...
-
ウィンドウを最前面にできません
-
(String args[])というメッソ...
-
C# 演算 最大値 最小値 表現の仕方
-
Excel VBA シェイプの原型のサ...
-
VB.netで、シリアル通信のタイ...
-
Excel VBA でExcelを終了したい...
おすすめ情報