- ベストアンサー
VBでマクロを組んでコマンドボタン操作でセルの中の数字を上下に移動させたい
VB初心者です。どなたか教えてください。やりたいことは以下です。 条件 sheet2がアクティブの状態 sheet2のA1のセルに数字の3が入っている sheet2を表示させたままコマンドボタンを押す sheet1のA10にある数字1を3個上へ表示しA7へ移動し A10はクリアしたい。 もう一度コマンドボタンを押すとA4に移動しA7はクリア することをしたいのです。 このように、コマンドボタンを押すことによってsheet2を 表示させたままsheet1のA列の1と表示している場所を sheet2のA1に表示している数字だけ、上下に自由に動かしたい のですが、すみませんがどなたか教えていただけないでしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
>sheet2を表示させたままコマンドボタンを押す これからすると、VBではなく、ExcelのVBAのような感じですね。その前提で回答します。 >このように、コマンドボタンを押すことによってsheet2を >表示させたままsheet1のA列の1と表示している場所を 『sheet1のA列の1と表示している場所』の『1』が位置を特定するための要件なのかよく分かりません。 A10とかは例で、A列に沢山数値があって、『1』を探すのか、A列には入力が1つしかないのかもよく分かりません。 今は、Sheet1のA列には入力は1つしかなく、どの行でも、どんな値(文字)でもかまいません。 違っていれば補足して下さい。 下記コードをコピーして、Sheet2のコードウインドウに貼り付けます。 Private Sub CommandButton1_Click() Dim DataSht1 As Range 'Sheet1のA列のセル Dim IdoStep As Long '動く幅 '動く幅を取り込む IdoStep = Range("A1") '動かすセルを決める With Worksheets("Sheet1") Set DataSht1 = .Cells(.Range("A65536").End(xlUp).Row, 1) End With 'シートの1行目より上に行ったときの対応 On Error GoTo ErrorHandler 'Sheet1のデータを動かす DataSht1.Offset(-IdoStep, 0) = DataSht1 DataSht1.Clear Exit Sub ErrorHandler: 'エラーが起きたら何もしない End Sub
その他の回答 (1)
- chas-bon
- ベストアンサー率0% (0/1)
Dim sell as Integer Dim flag as Integer Dim move as Integer sell = 0 flag = 2 move = 0 Private sub command1_click() if flag = 2 then flag = 1 sell = seet1.A10 sheet1.A7 = sell sheet1.A10 = 0 # 数字の0は入ってしまうのでエンプティにしたいなら""ですが、Integer 型なので、0が入ります。すいません。 else if flag = 1 then flag = 2 move = sheet2.A1 end if # この時点では、moveという変数に、シート2のA1セルの価が入ってるのではないかと思います。 正式なエクセルのVBA記述を知らないのですが、VBで書くならこのやり方ではどうでしょうか? 上下に動かすというところはできませんが、参考にしてみてください。 自信ないのですが参考になると嬉しいです。^^/
お礼
ありがとうございます。すみません、私の質問の仕方が悪いばかりに・・・ VBではなくてVBAだったので、ほんとにすみません。
お礼
ありがとうございます。上記のご指導でうまくいきました。 A列にはひとつの数字『1』しかないように初期化してからの 作業でした。また質問内容もVBAだったのにVBと書いてしま って、ここもお察しのとおりでした。 完璧な回答ありがとうございました。