• ベストアンサー

vba アクティブとセレクトの違い

シートを選択するには、選択したいWorksheetオブジェクトに対して「Select」メソッドを使います。 (質問)選択すれば、アクティブになりますか。 ならないとしたら、アクティブとセレクトはどのように使い分けるのでしょうか。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.1

「単一シート」に対しては「Select」も「Activate」も同じ動作をします。ですから「単一シート」に限れば >(質問)選択すれば、アクティブになりますか。 の答えはYesになります でもExcelでは複数シートを同時に選択することができます(作業グループ)。作業グループにしているときでもアクティブになっているのは1枚のワークシートです。ここが「SelectedSheets」と「ActiveSheet」の違いです。 マクロの記録で以下の動作のマクロを作成してみてください。「Select」と「Activate」の違いが分かると思います  1)Sheet1~Sheet3を同時に選択する(作業グループにする)  2)Sheet2のシート名タブをクリックする(作業グループのままSheet2をアクティブにする) 少し脱線しますが、これはセルでも同様です。複数セル範囲を選択した状態で  MsgBox Selelcion.Address  MsgBox ActiveCell.Address を実行してみてください。 選択セル範囲で白くなっているのがアクティブセルですが、セルの選択方法により「左上」が必ずしもアクティブセルになるとは限りません。 (例えば右下から左上に向かってセル範囲をドラッグしたような場合)

taktta
質問者

お礼

おかげでよく理解できました。どうもありがとうございます。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • VBAで実行時エラー1004が出ます

    VBAで実行時エラー1004が出ます。 「Rangeメソッドは失敗しました。Worksheetオブジェクト」です。 あらゆる可能性を調べたのですが、分かりません。誰か教えて頂けますでしょうか? 下記コードの「Cells(m, 7) =・・・」の部分がエラーになりました。 Sub ボタン1_Click() Dim 現シート As Worksheet ~ 現シート.Activate Cells(m, 7) = WorksheetFunction.VLookup(現シート.Range(現シート.Cells(m, 4)).Select, 現シート.Range(現シート.Cells(4, 104), 現シート.Cells(15, 107)).Select, 4, False) ~ End Sub 何卒宜しくお願いいたします。

  • SelectionとSelectについて?(エクセルVBA)

    任意に範囲選択したセルのうち数式が定義されているセルのみを選択するマクロについて教えてください。 次のようにコードを書いて Sub TEST() ' MsgBox Selection.Address Selection.SpecialCells(xlCellTypeFormulas).Select End Sub 任意の複数のセルに数式を定義します。(配置はばらばらでも構いません) あるセル範囲を選択して上のコードを実行すると、次のような動作になります。 数式を定義したセル(以降、数式セル)を1つ以上と、数式の定義に関わらず別の1つ以上を含むセル範囲を選択した場合は、希望通りに数式セルが選択されます。 しかし、数式セルを一つだけ選択してコードを実行すると、シート全体で数式セルが選択されてしまいます。 ヘルプをみると、Selectionには、セルを選択しているときは、Range オブジェクトが返されます。とあり、SpecialCellsには、オブジェクトを返すメソッドです。指定された条件を満たしているすべてのセル (Range オブジェクト) を返します。とあります。 素人的には、Selection プロパティで返されるオブジェクトの種類は、何を選択するかによって異なります。の部分で、返されるオブジェクトが一つのセルを選択した場合は、オブジェクトがシートになってしまっているからだと推測します。しかし、複数のセルを結合したセルに数式を定義した場合で、一つの数式結合セルを選択して、MsgBox Selection.Addressと表示させると、Selectionは、複数のセルからなるセル範囲を返している様なメッセージが表示されるのに、次の行では、同じくシート全体が選択されてしまいます。 回避する方法ってないのでしょうか?教えて頂けないでしょうか?宜しくお願い致します。 また、説明が悪くてすみません。

  • Excel VBA シート非選択で表示形式を設定

    Excel2010 VBAで、 ワークシートを選択しない状態で、 このワークシート上のセルの書式設定の表示形式を 数値の少数点以下の桁数1桁 (NumberFormatLocal = "0.0_ ") に設定することはできるのでしょうか。 例えば、 以下のように、WORKという名前のシート(WS2)があって、 Dim WS2 As Worksheet Set WS2 = ThisWorkbook.Sheets("WORK") WS2.Select WS2.Range("A1").Select Selection.NumberFormatLocal = "0.0_ " とすれば、 正しく設定することができるのですが WS2が選択されていない状態で、 WS2.Range("A1").Select を実行するとエラーになります。 (実行時エラー'1004' 'Range'メソッドは失敗しました: 'Worksheetオブジェクト') そこで、NumberFormatLocal を Selection ではなく、 WS2.Range("A1").NumberFormatLocal = "0.0_ " というような記述ができればよいのですが、 実際にはエラーになります。 シートを選択しなくても、 このシート上にあるセルに NumberFormatLocal を 適用するすることはできるのでしょうか。

  • VBA Selectの省略

    こんばんは、VBAのSelectメソッドの省略について質問させてください。 VBAにおいてSelectを使用すると処理が遅くなると聞いたことがあるので、なるべくSelectを避けるべく以下のVBAを記述しました。 内容は、シート「りんご」のA列~AN列に入っているデータを見出し項目を含めてコピー、そしてSheet1にペーストするというものです。(行数は毎回変化します。) ところが、以下を実行したところ、コピー&ペーストされたのは1行目の見出し項目のみでした。一方、「Range("A1:AN" ~」の前に「Sheets("りんご").Select」を入れたところ、全てのデータをコピー&ペーストすることができました。 この場合は、Selectを使用せずデータをコピー&ペーストすることは不可能なのでしょうか…?!どなたかご回答いただけると嬉しいです、よろしくお願いいたします。  '対象データのコピー&ペースト Sheets("りんご").Range("A1:AN" & Cells(1).CurrentRegion.Rows.Count).Copy Sheets("Sheet1").Paste

  • SelectとActivateの違いは?

    Sub Macro1() Sheets("Sheet1").Activate Sheets("Sheet2").Select End Sub は、同じ動きをします。 マクロの記録でシートを選択すると、Selectの方が取得されます。 SelectとActivateの違いを説明できる方お願いします。

  • Excel Selectは使わない? VBA

    おはようございます。 ExcelのVBAを独学しております。 いまさらな質問だとは思いますが、 そこで、色々調べていたところ 「Select」はあまり使うな! ということが良く出てきました。 selectを使わず、上手くシート移動などができるのでしょうか? 私が組んでいるものは、色んなシートを切り替えなければならなく、 毎回Selectしています。 Activateを使ったこともありますが、 エラーが多発し、良く分からなかったためSelectを使用しています。 出来れば、シートをアクティブにすることなく 操作ができれば良いのですが・・・ 例)「データ」「コピー」のシートがあります。 「データ」シートのAからD列を「コピー」シートにコピー しようとするものです。 WorkSheets(データ).select Range("A1").select Range("A:D").select selection.copy Worksheets("コピー").select Range("A1").select ActiveSheet.Paste どうしてもSelectを多様してしまいます。 ●Selectを使わないデータの入力方法 ●Selectを使わず、シートをアクティブにしなくても良い参照方法 ●どうしてもSelectを使わないといけない場面 ●Selectを使うのを回避するためには・・・ などなど、ご存知でしたら回答お願い致します。

  • Excel2000 VBA ダブルクリックで別シートの同番地セルへ移動

    sheet1とsheet2 の2つのシートがあります。 sheet1のA1セルをダブルクリックすると、sheet2のA1セルへ移動させたいのですが、 下記のコードで実行すると、 'Range'メソッドは失敗しました:'_WorkSeet'オブジェクト のエラーメッセージが表示されました。 どうぞアドバイスお願い致します。 Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)   Sheets("sheet2").Select   Range("Target.Address").Select End Sub

  • vbaのselect

    先輩の置き土産として作成されたマクロで、シート上の色を検索して、 色がついていたらA列に名前を入れえるというマクロがあって改修しようとしています。 そのコードの中で With Ws(Worksheet) Application.FindFormat.Interior.colorIndex = 3(黄色検索) .Cells(1, 1).Select: pos = "" とありますが.Select:ってなんでしょうか??? Selectだけならなんとなく意味はわかるのですが、コロンまでつけられ 変数pos で次処理でいろいろ判定を付けています。 お聞きしたい内容としてはとりあえずコロンが指す意味がわかればいいのですが・・・ すいませんが教えていただけないでしょうか?

  • オールクリアボタン VBA どこが間違ってるの?

    VBA初心者です。 設定、部品1、部品2、部品3、部品4と4つのシートがあります。 設定シートにオールクリアボタンを設置し各シートの値だけをクリアする ようにしたいのですが、「subまたはfunctionが定義されていません」という エラーが出てしまいます。 間違ってる箇所とうまくいく方法を教えていただけませんでしょうか? 記述は以下のとうりです。 ちなみにエクセルを開くと全シート保護という設定にしているので まずその解除をしてオールクリアしてまた保護といううふうにしたいです。 Private Sub CommandButton1_Click() '全シート保護解除 Dim sh As Worksheet For Each sh In Worksheets sh.Unprotect Next sh '範囲選択 With Worksheet("部品1").Select Cells.Select 'シートの値だけをクリアする Selection.SpecialCells(xlConstants, 23).ClearContents End With '範囲選択 With Worksheet("部品2").Select Cells.Select 'シートの値だけをクリアする Selection.SpecialCells(xlConstants, 23).ClearContents End With '範囲選択 With Worksheet("部品3").Select Cells.Select 'シートの値だけをクリアする Selection.SpecialCells(xlConstants, 23).ClearContents End With '範囲選択 With Worksheet("部品4").Select Cells.Select 'シートの値だけをクリアする Selection.SpecialCells(xlConstants, 23).ClearContents End With '全シート保護 For Each sh In Worksheets sh.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True Next sh End Sub 以上です、よろしくお願いします。

  • VBAでワークシートを変数にするとき

    たとえばSheet1とSheet2を一度に選択する場合、 Sub Macro6() Sheets(Array("Sheet1", "Sheet2")).Select End Sub と書くと思います。 ワークシートを変数で書く場合は Sub test() Dim ws1 As Worksheet, ws2 As Worksheet Sheets(Array(ws1.Name, ws2.Name)).Select End Sub と、いちいち名前で指定しなければならないのでしょうか? それとももっと別の書き方があるのでしょうか?

MR-LC201WH バックアップできない
このQ&Aのポイント
  • MR-LC201WHはバックアップができない問題が発生しています。
  • 問題はELECOM EXtorage Linkの「端末から外部ストレージへ」をタップすると操作ができなくなることであり、iOS15.7.1の環境で発生しています。
  • バックアップができない問題の解決方法について、アドバイスを頂きたく思います。
回答を見る

専門家に質問してみよう