- ベストアンサー
エクセルでのセルの移動
VBを使って、セルに文字が入っているまで処理をして 右にセルを移動させたいのですがどの様にすれば いいのでしょうか?教えて下さい。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
こんばんは。 それでしたら、#1 の方の r = ActiveCell.Row Do While Cells(r,j).Value ="" '処理 j= j + 1 Loop とすればよいのでは? (一応、Cells(r,j)は、プロパティを明示的に入れさせていただきました。)
その他の回答 (4)
- imogasi
- ベストアンサー率27% (4737/17069)
下記の意味でしょう。 Sub test01() c = Worksheets("sheet1").Range("IV1").End(xlToLeft) MsgBox c For i = 1 To c '(処理) Next i End Sub データの入っている最右列まで何か処理をする。 多数行の場合はCurrentRegionやUsedRangeなどが使えないかを調べてください。 ダメなら上記を全行にわたって行い、それらのMAX値を取る。
- Wendy02
- ベストアンサー率57% (3570/6232)
こんにちは。 元のご質問が具体的ではないので、私にはよく意味が分かりません。 ご自身が何かされようとしているのなら、その中途のコードをみせていただけませんか? 単に、右にのセルに移動なら、 .Offset(, 1).Select ということですが、まさか、こんな初歩的なことをお聞きになっているとは思いませんので。
補足
こんにちは。回答ありがとうございます。 私の質問がわかりづらくてすみません。 単に右にセルを移動して、移動したセルに 何らかのデータが入っていれば 処理を行うという事をやろうとしてます。 知識不足ですみません‥‥
- Wendy02
- ベストアンサー率57% (3570/6232)
こんにちは。 そのデータの一番上にセルポインタを置いてから、[マクロ]-[マクロ]-TestSample クリックすれば、そのデータは右隣に移動します。 Sub TestSampe() With Range(ActiveCell, ActiveCell.End(xlDown)) .Copy ActiveCell.Offset(, 1) .ClearContents End With End Sub
補足
ご回答ありがとうございます。 私の説明不足だったのですが、 セルのデータをコピーするのではなく、 セルの移動のみ行いたいんです‥‥
- fly_moon
- ベストアンサー率20% (213/1046)
Do While Cells(i,1)="" 処理 i=i+1 Loop こんな感じでどうでしょう?
補足
回答ありがとうございます。 私も回答して頂いた様な方法でやってみたのですが、 iにはアルファベットが入るので+1しても うまくいきませんでした!
お礼
ありがとうございました。 うまくいきました!! VBはあんまりやったことがないので もう少し勉強します!