誕生日にもらった意外なもの

シート1のA1とA2に数値(任意)を入力します。

そして、シート1にあるボタン(決定ボタン的なものです。)を押すと、

シート2の
A1に”シート1のA1の数値”
A2に”シート1のA2の数値”

を記録し、シート1のA1とA2をクリアします。(数値を消去)

そして新たに、シート1のA1とA2に数値を入力し、
シート1のボタンを押すと

シート2のB1に”シート1のA1の数値”
シート2のB1に”シート1のA2の数値”

を記録といったように、横方向に自動で追加していきたいです。

 ※次はC1とC2です。

どなたかお分かりなられる方教えてください。
よろしくお願いします。

A 回答 (4件)

時間の記録については、シート1のC4の欄に



=NOW()

と入力して、セルの書式設定で、表示形式を「時刻」の「13:30:55」等(質問者様のお好きな書式)に変えます。
その上で、先ほどのマクロの記述を下記のように書き換えます。

Sub Macro1()
Dim a1, a2
Dim time

Calculate
a1 = Range("C2").Value
a2 = Range("C3").Value
time = Range("C4")
Sheets("Sheet2").Select
Range("C5").Select
Do While ActiveCell <> ""
ActiveCell.Offset(0, 1).Range("A1").Select
Loop
ActiveCell = a1
ActiveCell.Offset(1, 0) = a2
ActiveCell.Offset(-1, 0) = time
Sheets("Sheet1").Select
Range("C2:C3").Select
Application.CutCopyMode = False
Selection.ClearContents
Range("A1").Select
End Sub

先ほどの記述と変わった点がいくつかありますが、ひとつひとつについては説明しませんので、よく見てご確認ください。

これを実行すると、シート2のC4から右側にボタンを押した時刻が表示されますので、この部分のセル書式の表示設定も「時刻」の表示になるように変える必要があります。
    • good
    • 0
この回答へのお礼

お陰様で思っていたファイルができました^^

本当にありがとうございました!

お礼日時:2007/10/17 11:16

#2です。

補足の要望を入れて
下記では別にコマンドボタン2をつくり、そのイベントにしました。
Private Sub CommandButton2_Click()
Dim x As Variant
Dim sh2 As Worksheet
Set sh2 = Worksheets("Sheet2")
d = Worksheets("Sheet2").Range("C65536").End(xlUp).Row
x = Worksheets("Sheet1").Range("A1:A2")
Worksheets("Sheet2").Range(sh2.Cells(d + 1, "C"), sh2.Cells(d + 2, "C")) = x
Worksheets("Sheet2").Cells(d + 3, "C") = Time
Worksheets("Sheet1").Range("A1:A2") = ""
End Sub
    • good
    • 0
この回答へのお礼

有難うございました^^

お礼日時:2007/10/17 11:16

Sheet1にコマンドボタンを1つ貼り付ける。

そのコマンドボタンのクリックイベントに
Private Sub CommandButton1_Click()
Dim x As Variant
Dim sh2 As Worksheet
Set sh2 = Worksheets("Sheet2")
c = Worksheets("Sheet2").Range("IV1").End(xlToLeft).Column
x = Worksheets("Sheet1").Range("A1:A2")
Worksheets("Sheet2").Range(sh2.Cells(1, c + 1), sh2.Cells(2, c + 1)) = x 'Worksheets("Sheet1").Range("A1:A2")
Worksheets("Sheet1").Range("A1:A2") = ""
End Sub
コード行を少なくと心がけました。
    • good
    • 0
この回答へのお礼

ご回答有難うございます!

実際はシート1のA1がC2、A2がC3
シート2のA1がC5、A2がC6
なのですがどの部分を変更すればよろしいですか?
教えて頂ければ嬉しいです。

また、記録した時間(ボタンを押した時間)を
シート2のC4に自動で入力することもできますか?

よろしくお願いします。

お礼日時:2007/10/16 16:40

マクロの実行の仕方等はわかりますか?


「ツール」→「マクロ」→「Visual Basic Evitor」を開きます。
「挿入」→「標準モジュール」を開き、下記マクロの記述をコピーして貼り付けます。

Sub Macro1()
Dim a1, a2

a1 = Range("A1").Value
a2 = Range("A2").Value
Sheets("Sheet2").Select
Range("A1").Select
Do While ActiveCell <> ""
ActiveCell.Offset(0, 1).Range("A1").Select
Loop
ActiveCell = a1
ActiveCell.Offset(1, 0) = a2
Sheets("Sheet1").Select
Range("A1:A2").Select
Application.CutCopyMode = False
Selection.ClearContents
range("A1").Select
End Sub


その後、エディタを閉じてエクセルの画面に戻り、「コントロールツールボックス」を開き、左側上から4番目の「コマンドボタン」を選んで好きなところに貼り付けます。
そのボタンをダブルクリックすると、エディタが開きますので、

Private Sub CommandButton1_Click()

Run ("Macro1")

End Sub

のように記述してエディタを閉じてください。あとはエクセルの画面にもどり、「コントロールツールボックス」内の「デザインモードの終了」を押し、先ほど作ったボタンを押せばマクロが実行されると思います。
    • good
    • 0
この回答へのお礼

ご回答有難うございます!
お陰さまで出来ました!
実際はシート1のA1がC2、A2がC3
シート2のA1がC5、A2がC6
なのですがどの部分を変更すればよろしいですか?
教えて頂ければ嬉しいです。

また、記録した時間(ボタンを押した時間)を
シート2のC4に自動で入力することもできますか?

よろしくお願いします。

お礼日時:2007/10/16 15:55

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