プロが教えるわが家の防犯対策術!

エクセルのボタンにマクロを割り当てました。
ボタンの1回目のクリック、2回目のクリックと行うとします。
その時1回目のクリックの時にはこの動作、
2回目のクリックの時にはこの動作と、
押すたびに動作を変えていくとこは可能でしょうか?

着信と言うボタンを作っておいて、クリックのたびにセルを移動して、
now()関数で、着信時間を記録しておきたいのです。
ボタンを幾つも分けてしまうと、大変なことになってしまうので、
Caseで分岐をしたいと思いました。

対象のセルが、空白ではない判断はどの様に記述するのでしょうか?

その後、次の処理に対して何をすればよいのでしょうか?

Caseの基本的な使い方と、空白セルの判別方法を教えてください。

Private Sub CommandButton1_Click()
'
' Macro1 Macro
' マクロ記録日 : 2008/6/20 ユーザー名 :
'

'
Range("B2").Select
' Select Case 1

' Case Is = FormulaR1C1 = "false"

ActiveCell.FormulaR1C1 = "=NOW()"

' Case Else

' FormulaR1C2 = "=NOW()"

' End Select

End Sub
これで、時間だけはクリックすると表示されます。

A 回答 (3件)

Range("B65536").End(xlUp).Offset(1, 0).Value = Now


一応、ご説明しておきます
Range("B65536"). B列の最終の行から
End(xlUp). 空白でないセルまで上に上がって
Offset(1, 0).Value  そのひとつ上のセルに Now

横方向であれば
Range("IV2").End(xlToLeft).Offset(0, 1).Value = Now
2行目の際右列から、空白でないセルまで左に移動して、
右へひとつのセルに Now
    • good
    • 0

Select Case文の使い方を根本的に間違っています。


Select Case 式(もしくは変数)
Case 式の結果1(もしくは変数の値1)
Case 式の結果2(もしくは変数の値2)
Case Else 上記以外の場合
End Select
というような書き方になります。
通常、今回のようにRange("B2")が空白か?といった二者択一の場合はSelectではなくIf文による分岐を行う方が多いと思うのですが、あえてSelectでやるとすると
Range("B2").Select
Select Case Selection.Value
Case ""
 B2が未入力のときの処理
Case Else
 B2が入力済みのときの処理
End Select
という風になります。
これをIf文にするなら
Range("B2").Select
if Selection.Value = "" Then
 B2が未入力のときの処理
Else
 B2が入力済みのときの処理
End If

ちなみに空白といわれるとスペースと勘違いすることもあるので、セルが空とか未入力とかの言い方のほうがいい思います。
セルが空(未入力)かは
If Range("B2") = "" Then とか If IsEmpty(Range("B2")) Then
などで判断します。
    • good
    • 0
この回答へのお礼

成るほど、nullとか入れるのかと思いました。

非常に具体的で助かります。

空白?では無く空ですねの判定とかってどんなところで調べるのかも判らなかったので助かりました。

本当は1からコツコツと積み上げて、やっていった方がいいのですが、不精なので行き成り応用を見て、その時々の使い方を覚えておき見たいなことをするので、邪道なので答えてもらえる人が少ないのではと思ったのですが、お答え頂き感謝しております。

お礼日時:2008/06/20 19:27

ひょっとして、やりたいことは


Sub sampl()
Range("B65536").End(xlUp).Offset(1, 0).Value = Now
End Sub

この回答への補足

すごい!縦にですけど動きました!こんな簡単にまとめる何てすごい応用ですね。
Masa2072には、質問内容からCase、Ifの初級のご説明を、halloさんからは、
一発実現を教わりました。

お二人とも大変有難う御座いましたM(__)M

補足日時:2008/06/20 19:31
    • good
    • 0
この回答へのお礼

何を書いてあるかわからないのですが、今後の勉強の参考にしたいと思います。またそのまま使って動くか試してみます。有難う御座います。

お礼日時:2008/06/20 19:28

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

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


このQ&Aを見た人がよく見るQ&A