windows XP でエクセル2000を使っています。
Sub aaa()
Sheets("Sheet1").Select
Dim a As String
a = Cells(2, 4)
Sheets(a).Select
Range("A1").Select
End Sub
というマクロだと セルに入っている値のシート名を探してくれます。
ですが
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
If Intersect(Target, Range("B11:b683")) Is Nothing Then Exit Sub
Worksheets("Sheet1").Range("C2").Value = Target.Value
Dim b As String
b = Range("C2).value (←ここをcellsにしてもダメ)
Sheets(b).Select
Range("A1").Select
End Sub
これだとsheets(b)を選びません。Sheets(b).Selectのところが黄色くなります。
何処が間違えているのでしょうか。
全くの素人ですが、仕事で必要に迫られています。
わかりやすく回答・解説くれると助かります。
No.1
- 回答日時:
If Intersect(Target, Range("B11:b683")) Is Nothing Then Exit Sub
Worksheets("Sheet1").Range("C2").Value = Target.Value
がなければ動きますよ。
Worksheets("Sheet1").Range("C2").Value = Target.Value
でC2の値がなしになっているのでは?
No.2
- 回答日時:
お書きになったコードでは
Sheets(b).Selectの前に、
b = Range("C2).value
の部分でエラーになると思います。
("C2”)が("C2).になってますので。
それはともかく
そのコードはB11からB683のセルにシート名があり、そのシート名のセルをクリックしたらそのシート名のシートを選択するという意味のですが、それが正しいですか?
そうだとしたらB11からB683のセルをクリックしたところ、そのセルに書かれた名前のシートが存在しなかったのではないでしょうか?
ご回答有難う御座います!!
<<そのコードはB11からB683のセルにシート名があり、
<<そのシート名のセルをクリックしたらそのシート
<<名のシートを選択するという意味のですが、それが正しいですか?
その通りです!!
<名前のシートが存在しなかったのではないでしょうか?
私もそう思ったのですが、同様の文字列で最初に挙げた例だと選択して
IF以下の文章を入れると選択しません。
助けて下さい。
No.3
- 回答日時:
基本的なことですが、モジュールの親オブジェクトは何かということを理解していませんね。
仮に、シートモジュールで動かすとすれば、>Sheets(b).Select
>Range("A1").Select
シートモジュールでは、ここで親オブジェクトに相違が出てしまい、エラーが出ます。
どこのシートモジュールか分かりませんが、このようになります。
しかし、なぜ、クリック範囲が、"B11:B683" となっているのか、想像の範囲でしかありません。また、Sheetsとするのは、Cellのないシートもあるのですから、少し乱暴なコードですが、そのままにします。
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim ShName As String
If Intersect(Target, Range("B11:B683")) Is Nothing Then Exit Sub
If Target.Count > 1 Then Exit Sub
If Target.Value = "" Then Exit Sub
ShName = Target.Value
On Error Resume Next
Application.Goto Sheets(ShName).Range("A1")
If Err.Number = 0 Then
'エラーがなければ、C2に書きこむ
Worksheets("Sheet1").Range("C2").Value = Target.Value
End If
On Error GoTo 0
End Sub
この回答への補足
こちらの方法もやってみましたが解決しました!!
Private Sub Worksheet_SelectionChangeについて
理解がないという事ですね。
Application.Goto を使うのもポイントなんでしょうか。
勉強になります!!
ご回答有難う御座います!!
<<基本的なことですが、モジュールの親オブジェクトは
<<何かということを理解していませんね。
はい。全く理解してません。
上記の命令分は、ほぼコピペで作ってます。
<<そのコードはB11からB683のセルにシート名があり、
<<そのシート名のセルをクリックしたらそのシート
<<名のシートを選択するという意味
この意味ではどのように記載するのが簡潔でしょうか。
(例えばAというシートのB11からB683のセルクリックで他のシートを選ぶ場合)
解りやすくお助け下さい。
No.4ベストアンサー
- 回答日時:
No2 merlionXXです。
そのコードはどのシートモジュールに書きましたか?
こう書いたらどうなりますか?
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
If Intersect(Target, Range("B11:B683")) Is Nothing Then Exit Sub
Worksheets("Sheet1").Range("C2").Value = Target.Value
Dim b As String
b = Worksheets("Sheet1").Range("C2").Value
Sheets(b).Select
Sheets(b).Range("A1").Select
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルのVBAでダブルクリックでチェックを入れたあと 1 2022/10/26 20:30
- Visual Basic(VBA) excel vbaでvlooupの変数がわかりません。 7 2022/05/30 09:35
- Excel(エクセル) VBAについて 3 2022/06/19 18:19
- Visual Basic(VBA) オブジェクトが見つかりません 1 2023/06/24 19:43
- Visual Basic(VBA) VBAで重複した値のセルに色付けをしたい 1 2022/11/02 16:12
- Visual Basic(VBA) まとめシートから集計シートへA列のコードが一致したら1行コピーするマクロをネット上で見つけました。こ 1 2022/08/30 14:11
- Excel(エクセル) エクセルVBAでオブジェクトが必要です 2 2022/09/10 16:37
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 2 2022/03/25 08:33
- Visual Basic(VBA) excel2021で実行できないマクロ。どこを直したらいいのか 2 2022/03/28 03:40
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 2 2022/05/26 17:19
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで品番を入れると、そ...
-
マクロ実行後、画面がちかちか...
-
マクロのコマンドボタン《Activ...
-
EXCELに関する質問
-
Excelの各シートの一覧シートの...
-
エクセルを共有にすると、シー...
-
Access-VBAでExcelファイ...
-
マクロの「SaveAs」でエラーが...
-
Worksheets メソッドは失敗しま...
-
VBAマクロ実行時エラーの修正に...
-
Excelで、あるセルの値に応じて...
-
エクセル マクロ オートフィ...
-
Excel UserForm の表示位置
-
エクセルで離れた列を選択して...
-
エクセルVBA 配列からセルに「...
-
エクセルで複数のシートのクリ...
-
VBA シートをコピーする際に Co...
-
Excelで数字を入れたら対応する...
-
excel 小さすぎて見えないセル...
-
excelのデータで色つき行の抽出...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Access-VBAでExcelファイ...
-
エクセルVBAでオブジェクトが必...
-
エクセルマクロ(超初心者)
-
複数シートを一括で保護を掛け...
-
コンボボックスへ降順に表示す...
-
エクセルのVBAについて教えてく...
-
エクセルを共有にすると、シー...
-
マクロのコマンドボタン《Activ...
-
Excell VBA にて配列に定数を代...
-
VBAでVlookup機能を使うときに...
-
エクセルマクロ 変数をワーク...
-
エクセルVBAでフォームの無効化...
-
エクセルで品番を入れると、そ...
-
EXCELに関する質問
-
マクロでフォルダ内のExcelを全...
-
エクセルVBA 別シートの最終セ...
-
エクセル マクロについて、 Inp...
-
【EXCEL-VBA】ワークシートに別...
-
マクロ実行後、画面がちかちか...
-
エクセルで特定の文字列が入っ...
おすすめ情報