Excel2003で、町内回覧のチェック表を作成したとします。

その際、チェックボックスにチェックをすると、横の閲覧日に自動的に日付が表示されるようにしました。

しかし、エクセルの表を翌日に開くと日付も更新されて、常に「今日」(TODAY)が表示される状態です。

閲覧日=チェックした日の日付のままにする、具体的に教えて下さい。
こちらで検索したところVBAを使えばいいようですが・・・

■エクセルでの、日付の自動入力について
  http://okwave.jp/qa1211065.html

※添付画像が削除されました。

このQ&Aに関連する最新のQ&A

A 回答 (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)を繰り返す


これで質問の件ができます。
また、上記が上手くいかないときは質問者が
回答のとおりやってないことになりますので
じっくり回答を読んで初めからやり直すこと。
以上。
 
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました。

お礼日時:2009/05/31 10:44

>マクロについては基礎知識はありますが、あまり詳しくありません。


>操作方法の手順を教えて頂けたり、
>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)

補足日時:2009/05/28 15:58
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
補足を追記しました。

お礼日時:2009/05/28 15:59

現在は、「フォーム」のチェックボックスを使い、チェックの結果をF6にリンクしているようですね。



「フォーム」のチェックボックスは、チェックをイベントとして扱えなかったように思いますので、現在のままでは無理だと思います。
「コントロールツールボックス」のチェックボックスでしたら、チェックをイベントとして取得できますので、その時の日付をセルに入れる事が可能です。

「コントロールツールボックス」のチェックボックスをシート上に貼り付けて、以下の様なマクロを入れて見てください。

Private Sub CheckBox1_Click()
 If CheckBox1.Value = True Then
  Range("E6") = Now()
 End If
End Sub

でも、質問や補足を見る限りではご自分で修正は難しそうな感じですね。
もっと詳しい人に頼んで作り直してもらっては?
    • good
    • 0
この回答へのお礼

アドバイスありがとうございます。
自分で修正できないようでしたら、他の人にお願いしてみます。

お礼日時:2009/05/28 16:01

>セル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だと思います。

その際 元々の構文に あなたがチェックを入れたセルを選択するような
構文があると思うので それを削除しないと永遠にそのセルしか対応しなくなるのでご注意ください。
    • good
    • 0
この回答へのお礼

アドバイスありがとうございます。

お礼日時:2009/05/28 16:00

#1ですが、まず チェックボックスにチェックを入れた時に


どのセルがアクティブになるのかが分からないと「そのまま貼り付けられる構文」は提示出来ませんよ?
(そもそも僕にそこまで出来るかは疑問ですが。。)

ちなみに この1行がすでに「値で貼り付け」の構文です。
 Selection.PasteSpecial Paste:=xlPasteValues

チェックを入れた後に閲覧日のセルがアクティブになるのであれば
上の構文を入れるのみでOKでしょうが、そもそも「どうしてチェックを入れたら日付が入るのか」
が分かっていないと その後の動作へ繋げ方が分からないです。

アクティブセルを変更する際には
Selection.Offset(行数,列数 ).Select
を使います。

あとは 本当に「=TODAY()」で日付が表示されているのか?
ここも疑問なので「値で貼り付ければ解決する」とも言い切れないですよね。
本当に関数で表示されているのであれば値で貼り付ければ解決しますが。

なので その作ってくれた人に再度依頼をした方が早いのではないでしょうか?
    • good
    • 0
この回答へのお礼

アドバイスありがとうございます。

上記の図で、
セルE6をアクティブにしたところ
=IF(F6=TRUE,$B$3,"")
となっていました。

ちなみにB3は、
=TODAY()
です。

>作ってくれた人に再度依頼をした方が早いのではないでしょうか?
作成者本人が、チェック日=閲覧日(チェック日付のまま)にするのは難しいと言っていたので、自力で解決できないかと思い質問しました。

お礼日時:2009/05/27 13:09

>チェックボックスにチェックをすると、横の閲覧日に自動的に日付が表示されるようにしました。


すごいですね。
これ どうやってやるんですか?

やり方によってなので参考までになのですが
閲覧日をアクティブにするマクロと値で貼り付けるマクロを組み合わせるというのはいかがでしょうか?

Selection.PasteSpecial Paste:=xlPasteValues

ちょいとお試しあれ?
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

>チェックをすると、横の閲覧日に自動的に日付が表示~
詳細は省きますが、実はこの表は知人が作成してくれました。

>閲覧日をアクティブにするマクロと値で貼り付けるマクロを組み合わせる
マクロについては基礎知識はありますが、あまり詳しくありません。
操作方法の手順を教えて頂けたり、
VBAのコード?をコピーペースト(もしくは一部変更するだけ)といった簡単な方法を教えてもらえるとうれしいです。

お礼日時:2009/05/27 11:39

このQ&Aに関連する人気のQ&A

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

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QPC連動タップを液晶テレビ周りの連動ON/OFF用途に使いたいのですが

PC連動タップを液晶テレビ周りの連動ON/OFF用途に使いたいのですが
テレビ周りのオーディオ・プレイヤーの自動電源ON/OFFにPC連動タップを使用して
自動ON/OFFと考えているんのですが、本来のPC用途とはかけ離れてますが
使用上問題はないでしょうか?

Aベストアンサー

問題はありません、構造上では普通のモノよりは性能が高いはずですから、
蛸足をしない限りは問題はありません。
自分もPCショップや量販店など、製造メーカーに問い合わせをした所では、
「問題は無い」との回答されました。

QEXCELでTODAY()の日付から31日分を表示

EXCEL2002で、1行に31日分のその日の日付からスタートする、連続する日付カレンダーを表示させます。
ちなみに、$AC$1には =TODAY() の値が入り、AH2は30日目の日付になります。

=IF(
OR(
AND(OR(MONTH($AC$1)=4,MONTH($AC$1)=6,MONTH($AC$1)=9,MONTH($AC$1)=11),AH2=30),
AND(MONTH($AC$1)=2,IF(OR(MOD(YEAR($AC$1),400)=0,AND(MOD(YEAR($AC$1),4)=0,MOD(YEAR($AC$1),100)<>0)),AH2=29,AH2=28))
),1,AH2+1)

問題が発生しました。
$AC$1がうるう年ではない3月31日、5月31日、8月31日、10月31日にあたるとき、
31日目のセルには「1」が返されてしまいます。
AH2+1をAH2+10とすると10が返ります。
どうやら直前のセルの値AH2が「0」に評価されてしまうようです。
どこを直せば正しい値が返ってくるか教えていただけないでしょうか?

EXCEL2002で、1行に31日分のその日の日付からスタートする、連続する日付カレンダーを表示させます。
ちなみに、$AC$1には =TODAY() の値が入り、AH2は30日目の日付になります。

=IF(
OR(
AND(OR(MONTH($AC$1)=4,MONTH($AC$1)=6,MONTH($AC$1)=9,MONTH($AC$1)=11),AH2=30),
AND(MONTH($AC$1)=2,IF(OR(MOD(YEAR($AC$1),400)=0,AND(MOD(YEAR($AC$1),4)=0,MOD(YEAR($AC$1),100)<>0)),AH2=29,AH2=28))
),1,AH2+1)

問題が発生しました。
$AC$1がうるう年ではない3月31日、5月31日、8月31日、10月31日にあた...続きを読む

Aベストアンサー

私見ですが、AC2に=IF($AC$1<>"",$AC$1+ROW(A1)-1,"")を設定してAC32までコピーする方法は如何でしょうか。

Qタップに詳しい方 おおしえください。

自動機で下穴をあけた後タップをとうしました。バリが出たため ハンドドリルでタップをとうしたのですが、ネジ山が二重になったり、ハ゛リもでてしまいました、油を付けながら 逆回転させながら 慎重に入れ 軽く入ったつもりですが、だめです。どうしてですか、おしえてください。再、再、回答できる方おねがいします。

Aベストアンサー

acha51補足です

質問を読み返してみるとタップも自動機で切った後の事でしょうか。
出るバリは表面だったら先の回答のバリ取り
ねじ山のバリだったら、
・自動機のタップへたりの場合はタップを交換し新規にやり直しましょう
・制御プログラムの場合は回転数と送りの関係を見直しましょう。
・わずかな場合はsusなどの固い材料のボルトを2-3回通す
・多いバリだったら先の1-3番をタップハンドルで順に通す
  職人技ですのでトレーニングしてやります

いずれにしても材料と深さ、径くらいははっきり書いた方が良いでしょう

Qエクセルの関数を教えて下さい。 表①の日付の本社の売上と消費税、営業所の売上と消費税を表②の日付を入

エクセルの関数を教えて下さい。
表①の日付の本社の売上と消費税、営業所の売上と消費税を表②の日付を入れただけで
自動的に数字がはいるようにする関数を教えて下さい。ちなみに月がかわると、列もかわります。

表①
A列 B列 C列 D列 E列
1行目 売上表 11 月
2行目 日付 本社 消費税 営業所 消費税
3行目 1 200 16 300 24
4行目 2 400 32 500 40
5行目 3 600 48 700 56
6行目 4‥

表②
11月〇〇日(例〇〇に2と入れた場合)
本社 400 営業所 500
消費税 32 消費税 40

表②の〇〇に日付を入れると自動的に400、32、500、40がでる関数を入れたいです。
よろしくお願いしますm(_ _)m

Aベストアンサー

こんにちは!

質問文では11月だけというコトですので、一例です。
↓の画像のように元データはSheet1にあり、Sheet2に表示するとします。
Sheet2のC1セルに日付(数値)を入力すると表示されるようにしてみました。

画像ではSheet2のB3セルに
=IF(C$1="","",VLOOKUP(C$1,Sheet1!A:C,ROW(A2),0))
という数式を入れB4までフィル&コピー!

どうようにSheet2のD3セルに
=IF(C$1="","",VLOOKUP(C$1,Sheet1!A:E,ROW(A4),0))
という数式を入れD4セルまでコピーしています。m(_ _)m

QPC連動タップについて

こんにちは

私はADSLモデム、ルーター及びプリンタの3種類の周辺機器をパソコンのON/OFFと連動してON/OFFしたいと考えています。(通常はパソコン及びこれら周辺機器の電源はOFFにしておき、パソコンを立ち上げると自動的に周辺機器の電源もONになり使える状態になる様にしたい)

ここで各メーカーから発売されているPC運動タップについて質問なのですが、このタップにこれら周辺機器をつなげば上述の私のやりたい事が実現するのでしょうか?(特に私が知りたいことは、PC運動タップは、単にタップを通電させるだけでなく、それにつながったパソコン周辺機器自体の電子スイッチをONにして周辺機器を使える状態にさせることが可能かどうかという点です。(機械式(手動式)スイッチ付タップとは違うか?という点です)

実際にPC運動タップを使用し周辺機器のPC運動起動を実現されている方がいらっしゃったらぜひ教えて下さい。

よろしくお願いします。

Aベストアンサー

PC連動タップは、「PC専用コンセント」に接続されたPCの電源が入って電流が流れると、他の「連動コンセント」がONになる仕組みです。
http://www.sanwa.co.jp/product/oatap/rendo.html

連動させるには電源スイッチがONの状態で、「コンセントを差せば電源が入る」周辺装置でないと使用できません。
(コンセントを差した後、onのボタンを押さないといけないプリンタは×です)

Q月間チェック表を作成時の日付と曜日の出し方。

エクセルの表で質問です。

  A  B  C  D  E  F
1      2005 年 08  月

2 1  月

3 2  火

4 3  水

5 4  木

上記の表でC1とE1を打ち込んだときにA2・B2以降の
曜日と数字が変わるような処理をするにはどうすればよいでしょうか。
例えば2月は28日までなので29日~31日までの数字と曜日を
空白に出来るような処理にしたいです。

Aベストアンサー

A2=IF(MONTH(DATE($C$1,$E$1,ROW()-1))=$E$1,ROW()-1,"")
B2=IF($A2="","",TEXT(DATE($C$1,$E$1,$A2),"aaa"))
これをA32:B32までコピーする。

QHSHギターのタップ

 HSHギターのタップですが、5wayセレクターの両端いずれかを選択して、そこからスイッチなどで片方のコイルをアースに流すのが定番になっていますよね? そこでふと疑問に思ったことが。

 普通、HSH配列のギターは、ハーフポジションの時は自動でタップされています。故に、HSHの真ん中のPUをオフにするスイッチを付けた場合でも、リア(フロント)のシングル単体の音がでるのではないか、ということです。

 これなら通常の2WAYのスイッチで切り替えることができるので、手っ取り早いと思うのですが……知っている限りこの配線でタップをしている機種はありません。なにか理由があるのでしょうか?(特に音質面で)

Aベストアンサー

「ストラトでもハムバッキングPUのパワフルかつウォームな音がほしいが、(ストラトの売りの一つである)ハーフトーンはシングルコイル同士のパラレルがいい」というユーザーを優先している為でしょう。

>普通、HSH配列のギターは、ハーフポジションの時は自動でタップされています。故に、HSHの真ん中のPUをオフにするスイッチを付けた場合でも、リア(フロント)のシングル単体の音がでるのではないか、ということです。
→可能だと思います。ただスイッチが2個存在することに変わりありません。ですので「手っ取り早い」とは私は思いませんが(笑)。
尚、これは私の推測ですが、音が出ないスイッチポジションが存在するギターをメーカーが好まないのではないでしょうかね。ブライアン・メイのRed Specialは自作だけあって特殊なケースですね。

Q勤務表の1日から31日までの総時間数を関数で表したいのですが…

 似たような質問はいっぱいあるのですが、理解がしにくかったので
 質問致します。宜しくお願い致します。 
 
1日から~31日までの定時内、早出、早退・遅刻、残業、深夜残業すべて記入しまして
各項目の最後に平日と休祝日の総合計時間を別々に計算したいのですが、うまく行かずに悩んでいます><

ちなみに
B列に日付 D列に曜日 Q列に定時内 T列早出 W列早退・遅刻 Z列残業 AC列深夜残業 O2 年数 R2 月
が入り、
**************定時内* 早出* 早退・遅刻* 残業* 深夜残業
平日の合計数を **Q40 **T40** W40 ****Z40** AC40
休祝日の合計数を Q41** T41** W41**** Z41** AC41

に出したいのですが。。。
分かる方どうか教えていただけませんか?宜しくお願いいたします。

*祝日のリストは作成してあります。*
*日付は1日は「=DATE($O$2,$R$2,1)」2日以降は「=$B9+1」と入れてあります。*
*曜日は「=TEXT(B9,"AAA")」と入力してあります。*

 似たような質問はいっぱいあるのですが、理解がしにくかったので
 質問致します。宜しくお願い致します。 
 
1日から~31日までの定時内、早出、早退・遅刻、残業、深夜残業すべて記入しまして
各項目の最後に平日と休祝日の総合計時間を別々に計算したいのですが、うまく行かずに悩んでいます><

ちなみに
B列に日付 D列に曜日 Q列に定時内 T列早出 W列早退・遅刻 Z列残業 AC列深夜残業 O2 年数 R2 月
が入り、
**************定時内* 早出* 早退・遅刻* 残業* 深夜残業
平日の合...続きを読む

Aベストアンサー

平日の合計数を出すQ40セルに以下の式を入力します(祝日リストに「休日リスト」と名前を付けてある場合)。

=SUMPRODUCT((WEEKDAY($B$9:$B$39,2)<6)*(COUNTIF(休日リスト,$B$9:$B$39)=0)*Q$9:Q$39)

上記の式は、平日は土日以外の日としていますので、もし日曜のみなら「<6」の部分を「<7」にして下さい。

休日を表示するQ41セルには以下の式を入力します。

=SUM(Q$9:Q$39)-Q40

上記の式をそれぞれの列にコピーします。

Qパソコンが自動的に立ち上がる

いつもお世話になっております。現在デスクトップパソコンを10年ほど使用しております。パソコン、モニター、プリンターをOAタップにつなぎ、タップの電源でシャットダウンした後、電源を切っていたのですが、最近OAタップの電源をオンにしたと同時にパソコンの電源が自動的に入り、BIOSセットアップメニューが立ち上がるようになり、また時刻も1998年の1月1日の0時となってしまうのです。マニュアルとか引っ張り出して読んでみたのですが、症例も載っておらず悩んでます。対処方法等ご存じの方おられましたら、ご教示お願いします。

Aベストアンサー

電池切れのためです。
Biosのセットアップ情報のバックアップや、RTC(時計)を駆動する
電池(CR2032など)が、PCの中に入っていますが、この電池が
消耗したのです。
PC内部を見て、コイン型の銀色の丸型の電池を探して同じものに
交換してください。

NECのPC90x1だと、ニッカド電池(充電式電池)の場合もあります。
この場合なら、OAタップの電源を入れたままにしてください。
省エネ(エコ)の為に電源を切っていると思いますが、毎日の
使用時間が少ないために、充電不足になっていると思われます。
(OAタップで電源を切らなければ、PCを使わなくても充電される)

当時のPCの待機電力は3W程度ですので、一月約50円位です。

QEXCEL表:横軸の日付目盛りがどうしても1日ずれてしまいます。

Excel2000で株価の表グラフを
作成しようとしているのですが、
系列タブで「項目軸ラベルに使用」で日付の
項目をドラッグして範囲を指定するのですが、
どうしても株価が1日後のものが表示されてしまいます。
なぜなのか皆目見当が付きません。

A1セルの日付というラベルも一緒に範囲指定
しています。それをしないとうまくいかないので・・・

何卒、よろしくアドバイスのほどお願い致します。

Aベストアンサー

A列に日付、B列に株価(円)のデータと仮定して、
一旦2004/1/4からの株価データで折れ線グラフを描きました。その後
グラフメニュー
元のデータ
「系列」のタブ
[項目軸ラベルに使用」のボックスの
斜↑をクリック
ワークシート部の日付列(A列)2004/1/6からを範囲指定
xをクリック
OK
で範囲指定した日付2004/1/6からX軸見出しが出ますが
実際のプロットされたデータは当初の2004/1/4からのデータのままで変らないので、食い違いが生じました。これは操作者が食い違いさせたのが原因ではないのでしょうか。
このタイプのことをやっているということではありませんか。
小生の大きな勘違いでしたら申し訳けありませんが。
●エクセルの質問に答えるには(OSのエラーなどの質問ならできないでしょうが)回答者は質問者のいう事象をできれば再現して、答えを考えるものだと思います。本件もう少し、例示データやグラフの種類等を掲げて、質問頂いた方が、回答者が理解し、適切な回答が寄せられる気がします。


人気Q&Aランキング

おすすめ情報