![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
Dim i As Integer
For i = 1 to 50 とした場合、
セルであれば
Sheets("Sheet2").Cells(i, 2).Value = Sheets("Sheet1").Cells(i, 2)
のように変数を使えますが、範囲に使う場合にはどう書けばいいのでしょうか?
例えば、
Sheets("Sheet2").Range("A1:G1").Value = Sheets("Sheet1").Range("A1:G1")
のような式で、行数を変数にする場合です。
よろしくお願いします。
No.4ベストアンサー
- 回答日時:
>範囲の場合は直接変数で範囲は指定できないという理解で
>よろしいのでしょうか?
No.3の方の通りです。
なお、Rangeの中のCellsにもちゃんとシートオブジェクトを付けておいて下さい。
あと、行方向だけなら、無理やり、
For i = 1 To 50
Sheets("Sheet2").Range("A" & i & ":G" & i).Value = Sheets("Sheet1").Range("A" & i & ":G" & i)
Next i
とかも出来ますが。
ありがとうございます!
> Rangeの中のCellsにもちゃんとシートオブジェクトを付けておいて下さい。
はい、ご親切にありがとうございます。
Range(Sh2.Cells(n, 1), Sh2.Cells(n, 7)).Value = Range(Sh1.Cells(i, 1), Sh1.Cells(i, 7)).Value
これでできました。
No.3
- 回答日時:
変数で範囲の指定?出来ますよ。
質問の答えではないですが、たとえばこんな感じ。
Sub 変数名で範囲指定()
Sheets("Sheet1").Activate 'ワークシートをアクティブにする ※1
左 = 2 '選択する範囲の左端セルの列番号 ※3
上 = 3 ' 〃 上端 〃 行番号 ※3
右 = 5 ' 〃 右端 〃 列番号 ※3
下 = 6 ' 〃 下端 〃 行番号 ※3
Range(Cells(上, 左), Cells(下, 右)).Select '指定された範囲を選択する
End Sub
参考URL:http://www.asahi-net.or.jp/~zn3y-ngi/YNxv206.html
ありがとうございます!
おかげさまでできました。
Range(Sh2.Cells(n, 1), Sh2.Cells(n, 7)).Value = Range(Sh1.Cells(i, 1), Sh1.Cells(i, 7)).Value
これでできました。
No.2
- 回答日時:
質問の例の場合は、それぞれの範囲の大きさが違っている場合にどうするか?が不明瞭ですので、結局はシート1の範囲かシート2の範囲いずれかでループ処理をする必要があります。
--
一般的に、ある範囲に対して処理を行う場合、For Each...Nextを使います。
' rngのvalueに1加算
Dim cel As Variant ' だっけ?
Dim rng As Range
Set rng = Sheets("Sheet1").Range("A1:C3")
For Each cel In rng
cel.Value = cel.Value + 1
Next cel
ありがとうございます。
sheet1のA1:G50の範囲内で、1列目が空白ではないものをsheet2に順に転記する作業です。(1列目が空白の行は飛ばす)
No.1
- 回答日時:
こんにちは。
maruru01です。Offsetプロパティを使用してはいかがですか。
For i = 1 To 50
Sheets("Sheet2").Range("A1:G1").Offset(i - 1).Value = Sheets("Sheet1").Range("A1:G1").Offset(i - 1)
Next i
早速ありがとうございました。
以下のマクロで期待通りの動きになりました。
Sub test4()
Set Sh1 = Sheets("Sheet1")
Set Sh2 = Sheets("Sheet2")
For i = 1 To 50
If Sh1.Cells(i, 1) <> "" Then
Sh2.Range("A1:G1").Offset(n).Value = Sh1.Range("A1:G1").Offset(i - 1).Value
n = n + 1
End If
Next
End Sub
今回はこれで解決なのですが、後学のため教えてください。範囲の場合は直接変数で範囲は指定できないという理解でよろしいのでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ExcelVBAでDo Until loopのネスト、IF文を使って一致する物と一致しない物としたい 11 2022/12/24 17:46
- Visual Basic(VBA) まとめシートから集計シートへA列のコードが一致したら1行コピーするマクロをネット上で見つけました。こ 1 2022/08/30 14:11
- Visual Basic(VBA) Excelのマクロ ブック間である範囲をコピー Workbooks(“a.xlsx“).Sheets 3 2022/05/12 17:02
- Visual Basic(VBA) vbaのvlookup関数エラー原因を教えていただけないでしょうか。 3 2022/04/25 16:16
- Visual Basic(VBA) Sheet1のA列にコードB列にメアド、Sheet2のB列にコード一覧とD列にメアド一覧があり、Sh 3 2022/10/19 11:57
- Visual Basic(VBA) 複数csvを横に追加していくマクロについて 2 2023/04/25 09:19
- Visual Basic(VBA) Sheet2の日付をキーにオートフィルターで2023年1月のデータを抽出し、Sheet3へ書き出すた 2 2023/03/06 23:57
- Visual Basic(VBA) フォルダの場所を可変にしたいです(マクロ) 4 2023/05/11 10:00
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 6 2022/06/08 12:55
- Visual Basic(VBA) 形式を選択して貼り付け 以下のコードで「元」シートと「先」シートのA列に同じ値があったら指定範囲をコ 5 2022/11/11 07:30
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
visual studio でインデントを...
-
エクセル ダブルクリック入力の...
-
テーブルリンク エクセルの4...
-
エクセル マウスで選択した範...
-
同じ色だけ残して後の部分をモ...
-
選択範囲の空白セルに0を入れる...
-
フォトショップ5.5での輪郭のぼ...
-
画像を角丸長方形で切り抜きた...
-
Excelで「名前ボックス」につい...
-
【エクセル関数】○○と○○と○○以...
-
メモやワードパッドやWordを使...
-
こんな風に1部をぼかすアプリを...
-
画像の背景を白にしたい。
-
フォトショ画像:背景への画像...
-
この画像の上と下の黒い部分を...
-
エクセル オートザム 範囲選...
-
私のプロフィールの自己紹介を...
-
楽に画面キャプチャを取る方法
-
エクセルのマクロで選択範囲の...
-
ヤフオクなどでキレイな枠
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
visual studio でインデントを...
-
エクセル マウスで選択した範...
-
エクセル ダブルクリック入力の...
-
テーブルリンク エクセルの4...
-
選択範囲の空白セルに0を入れる...
-
EXCEL VBA----離れたセル範囲の...
-
EXCEL VBAにて画像処理のアドイ...
-
Cell内の一部を指定する方法(Wo...
-
EXCEL ボリュームゾーンごとの...
-
セル削除右(又は下)方向にシフト
-
Wordで一括範囲指定について
-
反転する時の色を変えたいのですが
-
Wordデータの色を反転させたい
-
エクセルのマクロで選択範囲の...
-
読み上げ機能について
-
フォトショ画像:背景への画像...
-
ペイントでの切り取り
-
画像の背景を白にしたい。
-
Wordでの範囲指定について
-
【EXCEL】ピボットテーブルの集...
おすすめ情報