アプリ版:「スタンプのみでお礼する」機能のリリースについて

次のようなことをしたいのですが、なかなかうまくいきません。

(1)任意のセル(例えばB2)にカーソルを置いて、
(2)マクロを実行すると、
(3)1つ下のセル((1)の例ならB3)と内容が入れ替わり、
(4)そのセル(B3)にカーソルが移動して終了。

セルの入れ替えを頻繁にする仕事をしているので、上記の動作ができるととても助かります。
いろいろ試したのですが、VBAは初心者なのでなかなかうまくいきません。

どうかよろしくお願いします。

A 回答 (4件)

まず、日本語の問題!


質問文を読み返してみても、現状が書いてあるだけで質問点は何?・何が知りたいのか? "どうかよろしくお願いします。 " だけでは判らないけど。
ひょっとして、VBAを作れという 丸投げ か???

・・・・・・・・・・・・・・・・・・・・・・・・・・  
は、さておいて
>いろいろ試したのですが、VBAは初心者なのでなかなかうまくいきません。
ならば、どういう事を試して、その結果何が上手くいかないのかを書いておいて方が、解決が早いと思うよ。
質問者のスキルも推測しやすいからね。
例えば、
選択したセルを切り取って、
相対的に二つ下のセルに張り付けて、
そのセルと一つ上のセルを併せて切り取り
一つ上のセルに張り付けて、
一つ下を選択する
こんな動作などを、マクロの記録で作ってみればいいと思うが、どうだろう?
もしかして、もう一つ条件として、"入れ替える二つのセル以外は使わない"っというのがあるのかな??
    • good
    • 0
この回答へのお礼

アドバイスありがとうございました。
マクロの記録などを使って、それを任意のセルに応用できるようにやっていたのですが、うまくいきませんでした。これから勉強しようと思いますので、今度からうまくいかなかった部分を具体的に質問します。

お礼日時:2012/05/04 17:31

>任意のセル(例えばB2)にカーソルを置いて


一旦、Activecellの値を変数に格納して入れ替えするだけですよ

Dim tmp As Variant
With ActiveCell
  tmp = .Value 'ActiveCellの値を変数に格納
  .Value = .Offset(1).Value 'ActiveCellに下のセルの値を記述
  .Offset(1).Value = tmp '下のセルに変数に格納した値を記述
End With
    • good
    • 2

一例です。



Sub sample()
With Selection.Resize(1, 1)
a = .Value
.Value = .Offset(1)
.Offset(1).Value = a
.Offset(1).Select
End With
End Sub
    • good
    • 0
この回答へのお礼

ありがとうございました。1つの動作でもいろいろなやり方があるのですね。勉強になりました。

お礼日時:2012/05/04 17:25

セルを入れ替えてみます。



sub macro1()
 selection.offset(1).cut
 selection.insert shift:=xlshiftdown
 selection.offset(1).select
end sub


セルを入れ替えるのと内容を入れ替えるのとでは、出来ることも結果も違うので、何をしたいのかよく見て使ってください。
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています