エクセルのボタンにマクロを割り当てました。
ボタンの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件)
- 最新から表示
- 回答順に表示
No.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
No.2
- 回答日時:
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
などで判断します。
成るほど、nullとか入れるのかと思いました。
非常に具体的で助かります。
空白?では無く空ですねの判定とかってどんなところで調べるのかも判らなかったので助かりました。
本当は1からコツコツと積み上げて、やっていった方がいいのですが、不精なので行き成り応用を見て、その時々の使い方を覚えておき見たいなことをするので、邪道なので答えてもらえる人が少ないのではと思ったのですが、お答え頂き感謝しております。
No.1
- 回答日時:
ひょっとして、やりたいことは
Sub sampl()
Range("B65536").End(xlUp).Offset(1, 0).Value = Now
End Sub
この回答への補足
すごい!縦にですけど動きました!こんな簡単にまとめる何てすごい応用ですね。
Masa2072には、質問内容からCase、Ifの初級のご説明を、halloさんからは、
一発実現を教わりました。
お二人とも大変有難う御座いましたM(__)M
何を書いてあるかわからないのですが、今後の勉強の参考にしたいと思います。またそのまま使って動くか試してみます。有難う御座います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) vbaでセルに入力したときに,その横にあるセルを保護し入力不可にするマクロを作りたいです。 2 2022/04/24 20:59
- Visual Basic(VBA) 【Excel VBA】自動メール送信の機能追加 5 2022/09/29 12:53
- Visual Basic(VBA) 【追加】ファイルを閉じてダイアログで保存した時だけ処理の実行をする 3 2022/03/23 15:43
- Visual Basic(VBA) エクセルのVBAでダブルクリックでチェックを入れたあと 1 2022/10/26 20:30
- Visual Basic(VBA) Excelのマクロについて教えてください。 3 2022/06/30 09:36
- Excel(エクセル) 2つのVBAを一緒にしたら機能しなくなりました(エクセル) 7 2022/06/02 12:41
- Excel(エクセル) ②Excel 簡単にシートコピーしたら前日の残高と日付を変更させたい→マクロの記録でエラーが出ます 8 2022/07/16 20:40
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 2 2023/05/23 16:28
- Excel(エクセル) エクセルVBA Msgboxでの変数の活用 4 2023/07/23 08:33
- Visual Basic(VBA) VBA 複数のブックに同じ列を表示させる方法 2 2022/07/20 23:49
このQ&Aを見た人はこんなQ&Aも見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
VBAコマンドボタンを押すたびに、データ取得させたい。
Visual Basic(VBA)
-
Excelのマクロでボタンを押すと数が1足されるようにするには?
IT・エンジニアリング
-
VBAでセルをクリックする回数で表示が変わる
その他(プログラミング・Web制作)
-
-
4
条件に一致したときに画像を表示したいのですが・・。
Excel(エクセル)
-
5
VBAのコマンドボタンの文字列の改行方法は?
Visual Basic(VBA)
-
6
EXCEL VBA セルに既に入力されている文字に文字を追加する
Excel(エクセル)
-
7
コマンドボタンに二回目のマクロ実行しない設定を
Visual Basic(VBA)
-
8
複数のマクロボタンをまとめて一つのマクロボタンにするということ。
Excel(エクセル)
-
9
エクセル ボタンを押すとセルの色が変わるようにしたい
Excel(エクセル)
-
10
Excelでセルをクリックするたびに表示を切り替えるには?
Excel(エクセル)
-
11
Excel VBA あるセルでENTERを押すと特定のセルへ移動したい
Excel(エクセル)
-
12
ExcelVBAを使って、値がある場合は作業を繰り返し実行するプログラムを作成したい。
Visual Basic(VBA)
-
13
ユーザーフォームに入力したデータを保持する方法
Visual Basic(VBA)
-
14
回数のカウント
Visual Basic(VBA)
-
15
エクセルVBA
Excel(エクセル)
-
16
VBAで多数のプログラムを一つのボタンに集約することは可能でしょうか?
Visual Basic(VBA)
-
17
EXCELのVBAでRange(A1:C4")を変数にする方法を教え"
Visual Basic(VBA)
-
18
エクセルで折り返しと縮小の同時設定は無理?
Excel(エクセル)
-
19
VBA(エクセル)で自動的にボタンをクリックさせるには
その他(プログラミング・Web制作)
-
20
コンボボックス ▼ボタンをクリックしたらイベント
PowerPoint(パワーポイント)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
IF関数で空欄("")の時、Null...
-
関数TRANSPOSEで空白セルを0に...
-
Excel:関数が入っているセルに...
-
エクセルで上の行の値を自動的...
-
数式による空白を無視して最終...
-
「データ要素を線で結ぶ」がチ...
-
エクセルで、「複数のセルの中...
-
EXCELのオートフィルタで空白セ...
-
Excel 関数 数式 について
-
Excelのchar関数について 通常...
-
空白を0とみなす関数
-
Excel > ピボットテーブル「(空...
-
Excelで一行おきに削除したいの...
-
マクロボタンを押すたびに違う...
-
VBAで連続して二つのセルの内容...
-
形式貼り付けの「空白を無視す...
-
エクセルでCSVを編集するとき、...
-
エクセルのSUMの計算と空白につ...
-
区切り位置、使用時の左右のス...
-
《Excel2000》SUMPRODUCT関数で...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
IF関数で空欄("")の時、Null...
-
数式による空白を無視して最終...
-
エクセルでCSVを編集するとき、...
-
ピボットテーブルで空白セルの...
-
Excel > ピボットテーブル「(空...
-
関数TRANSPOSEで空白セルを0に...
-
excel2010 空白セルにのみ貼り...
-
「データ要素を線で結ぶ」がチ...
-
Excel:関数が入っているセルに...
-
Excelで、入力文字の後に自動で...
-
空白セル内の数式を残したまま...
-
色つき行の一括削除は?
-
エクセルで、「複数のセルの中...
-
エクセルで上の行の値を自動的...
-
エクセル 連番が途切れていると...
-
SUMIFS関数で「計算式による空...
-
【Excel】 csvの作成時、空白セ...
-
《Excel2000》SUMPRODUCT関数で...
-
エクセル セルのコピー元が空...
-
空白を0とみなす関数
おすすめ情報