質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
VB

VB(ビジュアルベーシック)はマイクロソフトによってつくられたオブジェクト指向プログラミング言語のひとつで、同社のQuickBASICが拡張されたものです。VB6の進化版といわれています。

Q&A

解決済

1回答

997閲覧

エクセルマクロで別シートのセル範囲選択

54RM

総合スコア12

VB

VB(ビジュアルベーシック)はマイクロソフトによってつくられたオブジェクト指向プログラミング言語のひとつで、同社のQuickBASICが拡張されたものです。VB6の進化版といわれています。

1グッド

1クリップ

投稿2020/03/12 03:43

Excelマクロで別シートのセル範囲選択についてご教示ください。

Sub cellselect()
'"sheet1"で実行

'"sheet2"のD1~D10セルを選択
Application.Goto Sheets("sheet2").Range("D1:D10").Select

'"sheet2"のE1~E10セルを選択
Application.Goto Sheets("sheet2").Range("E1:E10").Select

'Forを使用し、"sheet2"のD1~D10セルを選択後、E1~E10セルを選択
For e = 4 To 5
Application.Goto Sheets("sheet2").Range(Cells(1, e), Cells(10, e)).Select
Next

End Sub

"sheet1"で上記マクロを実行したところ、
直接範囲指定した場合は正しく「D1~D10」、「E1~E10」の範囲選択をしますが、
For文でセル範囲選択ができません。

別シートのセルを範囲選択をする場合、変数は使用できないのでしょうか。

For文の処理でセルの範囲選択をするための処理をご教示いただけますと幸いです。

よろしくお願いいたします。

s.k👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

単純にCellsと書いた場合、Sheet1で実行していればSheet1のCellsを指すので、Sheet2のRangeを指定しようとしているのにSheet1を指しているのでエラーになっているはずです。
修正するのであれば次のようになるかと。

VBA

1For e = 4 To 5 2 Application.Goto Sheets("sheet2").Range(Sheets("sheet2").Cells(1, e), Sheets("sheet2").Cells(10, e)) 3Next

長ったらしいのでWithを使うなどするとよいでしょう。

VBA

1With Sheets("sheet2") 2 For e = 4 To 5 3 Application.Goto .Range(.Cells(1, e), .Cells(10, e)) 4 Next 5End With

ちなみにSelectが付加されていますが、エラーになりません?
当方Excel2013ですがエラーになるので、上記コードでは削除しています。

投稿2020/03/12 04:37

ttyp03

総合スコア17000

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

54RM

2020/03/12 12:32

回答ありがとうございます。 ご教示いただいた方法で解決しました。 selectはResume Nextをコード内に入れていたため、エラーは出ていませんでした。 コメントアウトしたら、selectでエラー出力されました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問