• ベストアンサー

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

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.2

(1)("Target.Address").と””で囲んで,リテラルの文字列である「TargetAddress」という文字列にしてしまってはダメ。変数のままで使う。 (2)標準モジュールで Sub test02() Worksheets("Sheet2").Range("A1").Select End Sub はエラー。 RangeのSelectはActivateかSelectかしておくと Sub test02() Worksheets("Sheet2").Activate Worksheets("Sheet2").Range("A1").Select End Sub ならOK。 結局 Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Sheets("sheet2").Activate Sheets("sheet2").Range(Target.Address).Select End Sub Sheets("sheet2").はActiveSheet.でもよい。

tomoyochan
質問者

お礼

私のコードのだめな理由も指摘していただいて、スッキリ解決しました。丁寧なアドバイスありがとうございました。

その他の回答 (1)

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

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Sheets("Sheet2").Select ActiveSheet.Range(Target.Address).Select End Sub

tomoyochan
質問者

お礼

早速の回答ありがとうございました。 助かりました。

関連するQ&A

  • Excel2007 セルをダブルクリック

    お願います。 顧客管理ファイルの顧客シートの顧客名セルをダブルクリックすると 見積書ファイルが開いてダブルクリックした顧客名セルの内容を提出先顧客名セルへ転記したい。 見積書(テンプレート)の見積書シート 出来れば「○○○株式会社」→「○○○株式会社 御中」で貼り付けしたいです。 Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Worksheets("顧客シート").Range(ActiveCell).Copy Workbooks.Open "\C\見積書\2012年度\見積書(テンプレート).xls" Workbooks("見積書(テンプレート).xls").Worksheets("見積書").Range("a4").PasteSpecial End Sub こんなん書いてみましたがどうも上手くいきません・・・ ご指導のほどお願いします。

  • 同じシート内にイベントプロシージャが二つある時

    いつもお世話になります。 WINDWS7 EXCELL2010 です。 下記の1 2のマクロを同じシート内にイベントプロシージャを二つ挿入したところ、 ※1 ※2のような現象が起きました。 この現象を解決したくご指導を仰ぎたいです。 宜しくお願いします。 ※1 エラー表示 コンパイルエラー: 名前が適切ではありません; Worksheet_BeforeDoubleClick ※2 下記の構文が青色に反転 Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) 1 Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) If Intersect(Target, Range("A2:A51")) Is Nothing Then Exit Sub Cancel = True Sheets(CStr(Target.Value)).Select End Sub 2 Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Dim myRange As Range Set myRange = Intersect(Target, Range("B2:B51")) If Not myRange Is Nothing Then Select Case Target.Value Case "" Target.Value = "○" Case Else Target.ClearContents End Select Cancel = True End If End Sub

  • エクセルVBA ダブルクリックした左隣の値を返す方法

    いつもお世話になっております。 あるワークシートにおいて、 Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, _ Cancel As Boolean) If ActiveCell.Column = 7 Then Target.Value = "希望" End If End Sub というマクロを記述することができました。 今度は、 G列のどこかのセルをダブルクリックすると、 同じ行のE列の値が、 ダブルクリックしたセルに入るようにしたいのです。 どのような記述をすればよいのか ご教示ください。

  • (エクセルVBA)セルを左クリックしたら実行させるには?

    エクセルVBA初心者です。 下のように、同じシート内のコードとして2つのサブプロシージャがある状態なのですが、 シート内のどこかのセルを左クリック→指示(1) シート内のどこかのセルを右クリック→指示(2) のようにするにはどうしたらいいのでしょうか? (この状態だと、右クリックすると選択範囲が変わったことが優先的に認識されて指示(1)のほうが実行されてしまうようです。) 説明不足かもしれませんが、何を説明していいのか分からないので、補足が必要だったら言ってください。すみませんがよろしくお願いします。 --------------------------------------------------------------- Private Sub Worksheet_SelectionChange(ByVal Target As Range) 指示(1) End Sub --------------------------------------------------------------- Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean) 指示(2) End Sub ---------------------------------------------------------------

  • セルロックをしてない箇所のセルの色をダブルクリックで変えたい

    セルロックをしてない箇所のセルの色をダブルクリックで変えたい 前に、こちらで適切な回答をいただき、大変助かりました。 よろしければ、また助けていただけるととてもありがたいです。 以下のコマンドを入れた後、シートの保護設定をすると、 「実行時エラー'1004'  アプリケーション定義またはオブジェクト定義のエラーです。」 というメッセージで弾かれてしまいます。 Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Cancel = True With Target.Interior Select Case .ColorIndex Case 3 .ColorIndex = xlNone Case xlNone .ColorIndex = 33 End Select End With End Sub セルロックしていないセルを、シート保護をかけた状態で、ダブルクリックすると 色が変わるようにするには、このコードをどう書き変えたら良いでしょうか。 かなり困っています。よろしくお願いします。

  • セルをダブルクリックするとフィルタリングしてくれるマクロですが意味を理

    セルをダブルクリックするとフィルタリングしてくれるマクロですが意味を理解しようとしましたが理解できません(>へ<)どなたか意味を教えてください! Option Explicit Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Dim i As Integer For i = 1 To 256 Step 1 If ActiveSheet.Range("a2").Offset(0, i - 1).Value = "" Then Exit For Next If Target.Row > 1 And Target.Column < i Then ActiveSheet.Range("a2").AutoFilter Field:=Target.Column, Criteria1:=Target.Value ActiveSheet.Range("a1").Select Else ActiveSheet.Range("a2").AutoFilter ActiveSheet.Range("a2").AutoFilter ActiveSheet.Range("a1").Select End If End Sub

  • Excelでシート名と最終更新日を自動表示したい

    Excelを使って (1)セルA1に入れた名目をシート名にし (2)セルH1には、最終更新日を自動で入れたいです。 調べた結果、 シート名を右クリックして「コードの表示」から (1)は Private Sub Worksheet_Change(ByVal Target As Range) Sheets(1).Name = Range("B1") End Sub を入れてうまくいきましたが、 (2)は Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)  If ThisWorkbook.Saved = False Then   Worksheets("Sheet1").Range("H1").Value = Date  End If End Sub を入れてみましたが(←調べましたもの) うまくいきませんでした。 単純に、 Private Sub Worksheet_Change(ByVal Target As Range) Sheets(1).Name = Range("B1") End Sub Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)  If ThisWorkbook.Saved = False Then   Worksheets("Sheet1").Range("H1").Value = Date  End If End Sub とつなげて入れるのではだめなんでしょうか? それとも、(2)の何かが間違っていますか? ご教授願います。

  • VBA ダブルクリックで行に色をつける方法

    VBAでダブルクリックしたセルを含む行に色をつけたいです。 セルに色をつけるマクロは書いた(下記)のですが、これを行全体に色付けしたいのですが、 うまくいきません。 どなたかご教授ください。 Private Sub Worksheet_BeforeDoubleClick _ (ByVal Target As Range, Cancel As Boolean) If Not Application.Intersect _ (Target, Range("A3").CurrentRegion) _ Is Nothing Then With Target.Interior If .Color = vbRed Then .Color = xlNone Else .Color = vbRed End If End With Cancel = True End If End Sub よろしくお願いします。

  • エクセル デバッグできるのとできないのがある

    シートイベントについて教えてください。 シートモジュールに --------------------------------------------------------- Option Explicit Private Sub Worksheet_Activate() MsgBox "" End Sub Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) MsgBox "" End Sub Private Sub Worksheet_Change(ByVal Target As Range) MsgBox "" End Sub Private Sub Worksheet_SelectionChange(ByVal Target As Range) MsgBox "" End Sub --------------------------------------------------------- と記載した時に、 F8で動かせるのは、Worksheet_Activateだけなのですがなぜでしょうか? ほかのイベントは、F8で実行させても、OSの音が鳴るだけで、マクロの実行はされません。 ご回答よろしくお願いします。

  • 点在するセルを、ダブルクリックで変更したいのです。

    シート上に多数点在するセルを、ダブルクリックで変更したいのです。 下記の通り、数ヶ所のセルだと思い通りにセルが変更されるのですが 30か。。。40個目辺りのセルを追加して行くと突然動かなくなってしまいます。 Range(・・・・・・・) ←この中 物には限界があるのかな?と思いつつ、質問致します。 120セル位で動作させたいのですが、良いお知恵をお貸し下さいませ。 皆様宜しくお願い致します。 Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) If Intersect(Target, Range("A1,C1,F1,A3,C3,F3,A6,C6,E6," _ & "A8,C8,E8,A10,C10,F10,A12,C12,F12," _ & "A14,C14,F14,A17,D17,F17,A19,C19,F19")) Is Nothing = False Then Cancel = True If Target.Value = ChrW(10003) Then Target.ClearContents Else Target.Value = ChrW(10003) End If End If End Sub

専門家に質問してみよう