Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


2527 / 13645 ツリー ←次へ | 前へ→

【67458】rangeの中でcells ぴっぴ 10/12/6(月) 20:38 質問[未読]
【67459】Re:rangeの中でcells kanabun 10/12/6(月) 21:14 発言[未読]
【67460】Re:rangeの中でcells ぴっぴ 10/12/6(月) 21:40 お礼[未読]

【67458】rangeの中でcells
質問  ぴっぴ  - 10/12/6(月) 20:38 -

引用なし
パスワード
   10列〜15列における17〜30行目を削除し、左寄せしたいと考えてます.

for j = 15 to 10 step -1
 Range(Cells(17, j) & ":" & Cells(30, j)).Delete shift:=xlShiftToLeft
next

と書いたところ(一部だけ抜粋)、rangeの行でエラーが….
何がおかしいのですか.

【67459】Re:rangeの中でcells
発言  kanabun  - 10/12/6(月) 21:14 -

引用なし
パスワード
   ▼ぴっぴ さん:
こんにちは〜〜

>10列〜15列における17〜30行目を削除し、左寄せしたいと考えてます.
>rangeの行でエラーが….

>Range(Cells(17, j) & ":" & Cells(30, j))
     ↑          ↑
& ":" & で文字列を作り出しているようななのでそこはセルそのもの
でなく、 A1形式のセルアドレス(文字列)で指定しないといけません。

Sub Test2()
 Dim j As Long
 
 For j = 15 To 10 Step -1
  Range(Cells(17, j).Address(0, 0) & ":" & Cells(30, j).Address(0, 0)).Delete shift:=xlShiftToLeft
 Next
End Sub

あるいは 先頭セルと最後のセルを渡すなら、
ヘルプの構文2 のやりかたを使ってください。
  Range(Cells(17, j), Cells(30, j))


また、一括指定してもよいのでは?

Sub Test3()
 Cells(17, 10).Resize(14, 6).Delete shift:=xlShiftToLeft
End Sub

【67460】Re:rangeの中でcells
お礼  ぴっぴ  - 10/12/6(月) 21:40 -

引用なし
パスワード
   ▼kanabun さん:

ありがとうございました。
とてもよく分かりました。

また、いろいろ方法を示していただいて
助かりました。
早速復習しておきます。

2527 / 13645 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free