
Excel2003で、町内回覧のチェック表を作成したとします。
その際、チェックボックスにチェックをすると、横の閲覧日に自動的に日付が表示されるようにしました。
しかし、エクセルの表を翌日に開くと日付も更新されて、常に「今日」(TODAY)が表示される状態です。
閲覧日=チェックした日の日付のままにする、具体的に教えて下さい。
こちらで検索したところVBAを使えばいいようですが・・・
■エクセルでの、日付の自動入力について
http://okwave.jp/qa1211065.html
No.6ベストアンサー
- 回答日時:
回答5、myRangeです。
回答5をちゃんと読んでませんねぇ。。
----------------------------------------------
<セルC6のマクロ>
Sub Macro1()
' Macro1 Macro
****** 中略 *****
End Sub
------------------------------------------
こんなわけの分からんものを補足せよとは言ってませんが。。。
チェックボックスを右クリックして選択されるかどうか、その一言の補足要求ですよ。
要求どおりの補足を無視してなぜ自分勝手な補足をするのでしょうかねぇ、
そうは言っても書式の提示で一応目的は達成できはしますが。
●ということで、これ以後こちらの要求を無視した場合は
その時点で回答は無しということを頭にいれておくこと。
(更なる疑問点)
回答2のお礼の
>上記の図でセルE6をアクティブにしたところ
>=IF(F6=TRUE,$B$3,"")
これからは、C6上のチェックボックスのリンクセルは、F6と判断できます。
が、今回の補足には
><コントロールの書式設定>
>▲リンクするセル $G$6
と、▲リンクするセルは、G6 となってます。
ほんとのところはどうなんでしょうか。
ま、それは質問者に修正してもらうとして一応回答を書いておきます。
■リンクセルは、F列とする
■G列だったら自分で修正すること
標準モジュールに以下のコードをコピペする。
'----------------------------------------------
Sub DateSet(RowNo)
If Cells(RowNo, "F").Value = True Then
Cells(RowNo, "E").Value = Range("B3").Value
Else
Cells(RowNo, "E").Value = ""
End If
End Sub
'--------------------------
Sub Check1()
Call DateSet(6)
End Sub
Sub Check2()
Call DateSet(7)
End Sub
Sub Check3()
Call DateSet(8)
End Sub
'------------------------------------------
上記は、C6~C8までのチェックボックス3つ分
DateSet(番号)の番号は、行番号のこと
C6の上のチェックボックスだったら6になり
C7の上のチェックボックスだったら7になる
要領は分かったと思いますが、
例えば、C6~C14までの9個のチェックボックスなら
'--------------------------
Sub Check1()
Call DateSet(6)
End Sub
・・・・・・
・・・・・・
・・・・・・
Sub Check9()
Call DateSet(14)
End Sub
'----------------------------
となる。
上記が済んだらVBE画面を閉じてエクセル画面にもどり以下をする
(1)C6上のチェックボックスを右クリックして
表示されるメニューで、マクロの登録をクリック
(2)表示されるマクロ登録ダイアログに上記のマクロ(Check1,2,3・・・)が
表示されてるので、該当マクロを選択して、OKボタンをクリックする
(3)次に、C7、8,9・・・のチェックボックスについて、
上記(1)(2)を繰り返す
これで質問の件ができます。
また、上記が上手くいかないときは質問者が
回答のとおりやってないことになりますので
じっくり回答を読んで初めからやり直すこと。
以上。
No.5
- 回答日時:
>マクロについては基礎知識はありますが、あまり詳しくありません。
>操作方法の手順を教えて頂けたり、
>VBAのコード?をコピーペースト(もしくは一部変更するだけ)といった簡単な方法
ということは提示したコードをどこそこにコピペしなさい、
と言われれば、それを理解でき、指定の場所にコピペ、修正加筆でくるとことですね?
で、あれば簡単にできますが、その前に重要な?確認事項がありますので補足願います。
チェックボックスには、2種類ありコードの書き方、書く場所が違ってきますのでそれを確認します。
質問添付の画像を見るとそれがデフォルトの状態であれば、
コントロールツールボックスのCheckBoxと判断できますが、
もう一方のCheckBox(フォーム)も3D表示に設定すると
同じようになりますので、確実には判断できません。
で、次のようにして確認します。
●チェックボックスの上で【右】クリックする
(1)選択状態になれば、「フォーム」のチェックボックス
(2)何の反応もなけば、「コントロールツールボックス」のチェックボックス
ということになりますのでそれを教えてください。
この回答への補足
<セルC6のマクロ>
Sub Macro1()
'
' Macro1 Macro
' マクロ記録日 : 2009/5/20 ユーザー名 : ******
'
'
Range("F6").Select
Selection.Copy
Range("E6").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Selection.NumberFormatLocal = "yyyy/m/d"
Range("J18").Select
End Sub
<コントロールの書式設定>
コントロール
「値」
●オン
リンクするセル $G$6
「レ」3-D表示(3)
No.4
- 回答日時:
現在は、「フォーム」のチェックボックスを使い、チェックの結果をF6にリンクしているようですね。
「フォーム」のチェックボックスは、チェックをイベントとして扱えなかったように思いますので、現在のままでは無理だと思います。
「コントロールツールボックス」のチェックボックスでしたら、チェックをイベントとして取得できますので、その時の日付をセルに入れる事が可能です。
「コントロールツールボックス」のチェックボックスをシート上に貼り付けて、以下の様なマクロを入れて見てください。
Private Sub CheckBox1_Click()
If CheckBox1.Value = True Then
Range("E6") = Now()
End If
End Sub
でも、質問や補足を見る限りではご自分で修正は難しそうな感じですね。
もっと詳しい人に頼んで作り直してもらっては?
No.3
- 回答日時:
>セルE6をアクティブにしたところ=IF(F6=TRUE,$B$3,"")
なるほど。
>ちなみにB3は、=TODAY()
まぁ上記の数式を見れば想像がつきますね。
C6のチェックボックスをクリックいた際には アクティブセルはC6のままでしょうか?
であれば
Selection.Offset( ,2 ).Select
で 対象となるセルを移動させる必要がありますね。
僕自身チェックボックスとか あまり使ったことないので詳しくないですが
「フォーム」で作ったチェックボックスと「コントロール ツールボックス」で作ったチェックボックスでは
操作の仕方が違うような話を聞いた事がありますよ。
下記は そのまま 上手く行くかどうか分かりませんが、
一旦「チェックボックスにチェックを入れる」というマクロの記録を取ってみてください。
その後「Alt」+「F11」でVBEを起動して書かれている構文の後ろに
ActiveCell.Select
Selection.Offset( ,2 ).Select
Selection.PasteSpecial Paste:=xlPasteValues
を貼り付ければOKだと思います。
その際 元々の構文に あなたがチェックを入れたセルを選択するような
構文があると思うので それを削除しないと永遠にそのセルしか対応しなくなるのでご注意ください。
No.2
- 回答日時:
#1ですが、まず チェックボックスにチェックを入れた時に
どのセルがアクティブになるのかが分からないと「そのまま貼り付けられる構文」は提示出来ませんよ?
(そもそも僕にそこまで出来るかは疑問ですが。。)
ちなみに この1行がすでに「値で貼り付け」の構文です。
Selection.PasteSpecial Paste:=xlPasteValues
チェックを入れた後に閲覧日のセルがアクティブになるのであれば
上の構文を入れるのみでOKでしょうが、そもそも「どうしてチェックを入れたら日付が入るのか」
が分かっていないと その後の動作へ繋げ方が分からないです。
アクティブセルを変更する際には
Selection.Offset(行数,列数 ).Select
を使います。
あとは 本当に「=TODAY()」で日付が表示されているのか?
ここも疑問なので「値で貼り付ければ解決する」とも言い切れないですよね。
本当に関数で表示されているのであれば値で貼り付ければ解決しますが。
なので その作ってくれた人に再度依頼をした方が早いのではないでしょうか?
アドバイスありがとうございます。
上記の図で、
セルE6をアクティブにしたところ
=IF(F6=TRUE,$B$3,"")
となっていました。
ちなみにB3は、
=TODAY()
です。
>作ってくれた人に再度依頼をした方が早いのではないでしょうか?
作成者本人が、チェック日=閲覧日(チェック日付のまま)にするのは難しいと言っていたので、自力で解決できないかと思い質問しました。
No.1
- 回答日時:
>チェックボックスにチェックをすると、横の閲覧日に自動的に日付が表示されるようにしました。
すごいですね。
これ どうやってやるんですか?
やり方によってなので参考までになのですが
閲覧日をアクティブにするマクロと値で貼り付けるマクロを組み合わせるというのはいかがでしょうか?
Selection.PasteSpecial Paste:=xlPasteValues
ちょいとお試しあれ?
ご回答ありがとうございます。
>チェックをすると、横の閲覧日に自動的に日付が表示~
詳細は省きますが、実はこの表は知人が作成してくれました。
>閲覧日をアクティブにするマクロと値で貼り付けるマクロを組み合わせる
マクロについては基礎知識はありますが、あまり詳しくありません。
操作方法の手順を教えて頂けたり、
VBAのコード?をコピーペースト(もしくは一部変更するだけ)といった簡単な方法を教えてもらえるとうれしいです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) Accessで予定表を作成しようとしてます。 テーブル フィールド名 連番 オートナンバー型 年月日 2 2023/07/23 11:40
- Microsoft ASP グーグルフォーム 1 2022/12/30 18:16
- JavaScript javaScriptで画面に値を入れるには 1 2022/08/14 12:27
- Excel(エクセル) vba 同じブック内での転記について 4 2023/01/15 14:42
- Excel(エクセル) エクセルで、特定のセルの内容を更新すると、別の特定セルに 更新日付が自動的に表示させる方法はあります 1 2022/11/14 21:03
- その他(Microsoft Office) 1の行を固定した上でVBAを用いて日付順に自動並べ替え 2 2022/06/06 15:09
- Excel(エクセル) Excel VBAどこが間違ってますか? 4 2023/07/17 10:04
- Windows 10 windows11 update の「更新の再開」について初歩的な質問なのですが 1 2022/10/19 00:57
- その他(ブラウザ) IE・edgeで日増しに観られるサイトが減ってくる。 1 2022/10/04 22:40
- Excel(エクセル) Excelヘルプの原文を表示する最速の方法(手順)には? 1 2023/08/11 11:30
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
EXCELで特定のセルに表示...
-
Excel内での検索結果をシート...
-
Excelで、図形内の文字をセルに...
-
Excel ハイパーリンクのURLを別...
-
クリックすると文章が表示され...
-
エクセル 数字をすべて○などの...
-
太字に設定されているセルの個...
-
フォントの色を指定して削除出...
-
Excelでセルをクリックす...
-
セルの内容をテキストボックス...
-
空白セルを空セルに置き換える...
-
【EXCEL】先週の月曜日の日付を...
-
マクロを実行すると画像がズレ...
-
ページ内ハイパーリンクの表示...
-
現在のセルの位置を返す関数は...
-
エクセルシート内のある数値以...
-
エクセル 未入力セルがあると...
-
Excel:セルの値(文字列)を数...
-
開始行と最終行を指定して差し...
-
エクセルでPDFリンクを大量...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
EXCELで特定のセルに表示...
-
Excel内での検索結果をシート...
-
エクセル 数字をすべて○などの...
-
クリックすると文章が表示され...
-
Excelで、図形内の文字をセルに...
-
Excel ハイパーリンクのURLを別...
-
Excelでセルをクリックす...
-
太字に設定されているセルの個...
-
マクロを実行すると画像がズレ...
-
現在のセルの位置を返す関数は...
-
Excel:セルの値(文字列)を数...
-
Excel2007 色のカウント (VBA)
-
セルの内容をテキストボックス...
-
セルがクリックされた回数をカ...
-
エクセル 未入力セルがあると...
-
エクセルマクロ 赤色の文字を検...
-
選択したセル範囲に入っている...
-
アポストロフィーの一括挿入 ...
-
エクセルでPDFリンクを大量...
-
エクセルでセルをダブルクリッ...
おすすめ情報