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で質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルVBAで、条件に一致する...
-
DataGridViewでセルクリックイ...
-
mainメソッドのthrows節で設定...
-
C#で右からnカラム目に文字を挿...
-
ExcelVBA Findメソッドで検索の...
-
エクセルVBAにおけるON TIMEメ...
-
worksheets & rows メソッドは...
-
You Tubeの音楽をMac Book Proへ
-
「CA2202: オブジェクトを複数...
-
sprintfは古いのか。
-
VBAのWorkbook_BeforeSaveイベ...
-
InetAddress#getHostNameについ...
-
VB.netで、シリアル通信のタイ...
-
PDFファイルから別ウィンドウで...
-
エクセルのマクロでプリンタを...
-
2つの項目の和の消費税の計算...
-
サーブレット GETからPOST送信
-
Excel VBA でExcelを終了したい...
-
「タイプ初期化子が例外をスロ...
-
C#でフォームのオブジェクト名...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルVBAで、条件に一致する...
-
DataGridViewでセルクリックイ...
-
final修飾子を使っているのに、...
-
javascriptからjavaを呼び出したい
-
Labelコントロールに数字を代入...
-
VBPをダブルクリックするとたま...
-
vbaエクセルマクロ RemoveDupli...
-
【sendkeysメソッドが動かずに...
-
mainメソッドのthrows節で設定...
-
エクセルVBAにおけるON TIMEメ...
-
Refreshメソッドの使い方
-
onClickで関数呼出し後に、結果...
-
ウィンドウを最前面にできません
-
JSPで<SELECT>の中にDBから持っ...
-
コマンドプロンプト実行後に画...
-
Application.Wait の参照設定
-
Excel VBA でExcelを終了したい...
-
配列のメソッド
-
エクセルのマクロでプリンタを...
-
Excel VBA シェイプの原型のサ...
おすすめ情報