痔になりやすい生活習慣とは?

こんにちはtmgmです。

Excelでちょっと困っています。
「A1セルに文字を入力したときの時間をA2セルに表示する」ということがやりたいのですが、
実際やってみるとなかなか出来ませんでした。

A2セルの書式をhh:mmなどにして、セルに=if(A1<>"",NOW(),"")と書きました。
これで一応A1セル入力でA2セルに時間は挿入されますが、Excelの自動計算機能により、一度閉じてまた開いた場合や他のセルで自動計算を行うような入力をした際などに時間が更新されてしまいます。
時間が更新されてしまってはだめなんです。

かといってツール→オプションから自動計算を手動にすると、その他の計算(例えばSUM関数など)の自動計算に影響がでて、使い勝手が違ってくるし。。。。


どうすればよろしいんでしょうか?
お分かりになる方ご返答宜しく御願い致します。

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

A 回答 (3件)

VBAで。



シート名を右クリックしてコードの表示を選び、出てきたVBE画面(何か書かれていたら消して)に書きます。

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim r As Range
 For Each r In Target
  If r.Column = 1 Then
    r.Offset(0, 1).Value = Format(Now, "hh:mm:ss")
  End If
 Next r
End Sub

試すのはテスト環境で。
    • good
    • 20

ファイルを閉じる前に、


入力時刻を入れたセルを
コピー→形式を選択して貼り付け→値
では、数式が消えてまずいのですか?
    • good
    • 1

安直な方法ですが、A2のセルにCTRL+;(その時の日付が入力される)ではだめですか。


A1に文字を入れて、A2に日付をいれるとなるとVBAを組まないと難しいかもしれません。
    • good
    • 1
この回答へのお礼

こんにちはtmgmです。

それも考えたんですが、
どうしても自動挿入という部分にこだわりたくって。。。
ご回答ありがとうございました。

お礼日時:2004/09/09 12:52

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

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

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

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

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

QExcelで日付と時間の自動入力

教えてください。
エクセルで表を作っているのですが、
D列に文字を入力すると、
A列に入力した日付
B列に入力した時間
を「自動で」表示させたいのですが…マクロやVBAなどでできますでしょうか?
できれば、D列の文字を消すと日付と時間も消えるようにしたいです。
初心者で申し訳ないのですが、よろしくお願いします。

Aベストアンサー

No.2です。

Range("A" & r.Row).Clear
Range("B" & r.Row).Clear

の部分を

Range("A" & r.Row).Value = ""
Range("B" & r.Row).Value = ""

に変えて下さい。

Q☆Excelエクセルで入力した日の日付を表示したいです☆

こんばんは!エクセルで、なにかデータを入力した横のセルに、その日の日付が自動的に入るような方法があれば、是非教えてくださいm(__)m横の列に手動で日付を入力すればよいといえばよいのですが^^;その列には、また別の日に、追加でデータを入力していきたいですので、前の日の日付もその日の日付も残るようにしたいんです。today関数とかじゃ全部その日になってしまいますよね。。。もし、データを入力しただけで、そのようなことができる方法があれば、是非教えてください。よろしくお願いしますm(__)m

Aベストアンサー

マクロを組むしかありません。過去の質問を検索すれば結構出てきますよ。
手動でいいなら、「Ctrl」キーを押しながら「;」キーで今日の日付になります。

Q【エクセル】指定したセルに入力することで、別の特定のセルに決まった文字を表示させるには?

社用データを作る際の手間を省こうとしたのに、かえって難しくなってしまいました(-"-;)
分かりにくい質問で恐縮ですが、よろしくお願いします。

現在Excel2003を使っています。
「指定したセルに文字・数字問わず入力があった場合、特定のセルに特定の文字を表示させる数式(または方法)」は無いでしょうか。
(できれば指定したセルに入力が無い限り、特定文字を表示させるセルは非表示のままにしたいと思っています)

例えば、「A1のセルに『○田×男(人名など)』と入力した時、B1のセルに『様』と表記させる」と言った具合です。
(このとき、A1に入力が無ければB1も空白のままにしておきたいのです)

手動で入力した方が早そうな気もしますが、応用次第で他の表や作業もスッキリしそうなので、手があれば是非ご教授下さい。

Aベストアンサー

間違えました。

B1 に
=IF(A1="","","様")

でした。

QエクセルのIF関数で、文字が入力されていたならば~

エクセルのIF関数で文字が入力されていたならば~、という論理式を組み立てたいと思っています。

=IF(A1="『どんな文字でも』","",+B1-C1)

A1セルに『どんな文字でも』入っていたならば、空白に。
文字が入っていなければB1セルからC1セルを引く、という状態です。

この『どんな文字でも』の部分に何を入れればいいのか教えてください。

またIF関数以外でも同様のことができれば構いません。

宜しくお願いします。

Aベストアンサー

=IF(ISTEXT(A1),"",B1-C1)

でどうでしょうか?

Q特定セルの内容を更新したら、その更新日を自動的に表示する方法について

エクセルで、特定のセルの内容を更新すると、別の特定セルに 更新日付が自動的に表示させたいと思っております。
例えば『A1』へ新規に文字入力したり、セルの内容を更新した時に、セル『B1』にその日の日付が自動で表示される。
そして、違う日にもう一度、同じ欄に入力すれば、その入力した日付に随時更新されるようにするための方法を教えていただければ幸いでございます。

御手数ですが、エクセル関数またはVBA、マクロのいずれかで実現可能な方法があれば教えて下さい。
何卒、宜しくお願いいたします。

Aベストアンサー

マクロの力を借りる事になります。
例えば、シートの名前のタブを右クリックして、コードの表示 をクリック
VBエディターが起動しますので
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 3 Then'←の3はC列のこと
If Target.Value = "" Then
Cells(Target.Row, 2).Value = ""
Else
Cells(Target.Row, 2).Value = Date'←の2はB列に日付
Cells(Target.Row, 4).Activate'←の4はD列へ移動
End If
End If
End Sub
をコピィしてみてください。上記のコードでは
C列に変更があれば、B列に日付を入れて、C列へ移動します。
空白へ変更した場合はA列を空白に戻します。
ご自身のシートに合わせて編集してみてください。

Q[EXCEL]ボタン押す→時刻が表に入る方法

会社で勤務時間をEXCELで管理することになりました。(タイムカードのように)
毎日、出勤時、退勤時にその時刻を入力していく必要があり、少しでも操作の手間を省きたいので、
ボタンのようなものを設置して、今の時刻が表の中の必要なところに入るようにしたいのですが、
EXCELでそういうことはできますか?

Aベストアンサー

可能なのだが、エクセルVBAを知ってないと、うまく行かないし、他人にデータ入力を任せる場面があるなら、それなりの防御機能を考えないとだめです。
しかし今でも、誤ったら他人の行にデータを入れ放題ですか。
こういうのはお金(給与)や名誉(遅刻)に関連することで、個人が所有CDの整理表を自分で作るなどとは違うのです。
エクセルなどというソフトはそういうことに適してないのです。
既に回答で言及の在るフォームなどを使って、他人(他行)のデータは隠したり(見えないように)し足りは出来ますが、VBAも中級程度のならないと。ある程度システム思考に慣れないと無理です。
CTRL+:、CTRL+;などの操作を覚えてもらうほうが良いでしょう。ボタンクリックとそう手間は変わらない。

Q(Excel)あるセルに文字を入力しただけで、同じブック内のほかのワークシートにも、同じ文字が自動的に入るようにするには?

こんにちは。
質問内容はタイトルのとおりです。

あるワークシートのあるセルに文字を入力すると、ほかのワークシートのセルにも同じ文字が自動的に書き込まれる方法を知りたいです(ブックは同じ)。複数のワークシートを制御するには、やはりマクロを使うのでしょうか?

よろしくお願いします。

Aベストアンサー

clam_chowderさん、こんにちは。

Sheet1のA1にたとえば「100」と入力しますね。
Sheet2のA1に、これと同じ数値を表示するには、
 =Sheet1!A1
でOKです。

数式をいれるのが苦手なら、
Sheet2のA1セルで「=」を入力すると、数式入力状態に入りますから、
ここでSheet1のシートタブをクリックし、
リンクしたいA1セルをクリックしてEnterすると、
自動的にさきほどと同じ式が入ります。

Qエクセルで入力時間を更新させずに表示させたい

エクセル初心者です。シート内で複数の入力時間を、更新させずに表示させたいのですが、どのようにすればよいのでしょうか?
A1にある数値を入力したらB1にその入力時間を表示させ、一定時間後にA2に別の数値を入力すると、B2にその入力時間を表示させたいです。
B1、B2の入力時間とは、あくまでもそれぞれの入力した時の時間を表示させたく、また、表示後は時間の更新はさせたくないです。
”=NOW()”だと、入力のたびに過去の表示時間まで同時に更新されてしまい、また、複数の表示時間が全て同じ時間となってしまいます。
簡単な関数などでできれば助かりますが、マクロやVBAでないとできないというのであればやってみたいと思いますので、できる方法で教えてください。
よろしくお願いします。

Aベストアンサー

普通の操作は、時刻の入力は、CTRLを押しつつ:キーを押します。
ーー
VBAの勉強してない人には進められませんが、
シートタブを右クリック
コードの表示
Generalと見えているところをクリク
Worksheetを選ぶ
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

End Sub
と出てくるが無視
SelectionChangeと出ている部分をクリック
Changeをクリック
Private Sub Worksheet_Change(ByVal Target As Range)

End Sub
となる。
この間にコードを入力する。
Targetが、セルの値を変化させたセルなので
その隣のセル Offset(0,1) に時刻を入れるのは
Target.offset(0,1)=Time
=dateにして書式で時刻だけ見せるほうが、入力日も残って、良いかもしれない。
ただしVBAででも隣に時刻を入れるとセルの値の変化イベントが起こり、ぐるぐる回りになるから、その機能を1時的に止めて、隣のセルに時刻をセットし、イベント機能を復活させる。
また、例えばA1:A30のセル以外は、自動時刻セットが困るので
例えば、A列以外のセルは除外のコードを入れる。
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column <> 1 Then Exit Sub
If Target.Row >= 31 Then Exit Sub
Application.EnableEvents = False
Target.Offset(0, 1) = Time
Application.EnableEvents = True
End Sub
細かく言えば、A列を入力後、DELで消したときの対策など必要だが
省略。
ーー
こんなにいっぱいVBAの色々なことが詰まっている内容を今すぐやろうというのはむりだよ。
まあ丸呑みしてこのキッカケでVBAを勉強してください。

普通の操作は、時刻の入力は、CTRLを押しつつ:キーを押します。
ーー
VBAの勉強してない人には進められませんが、
シートタブを右クリック
コードの表示
Generalと見えているところをクリク
Worksheetを選ぶ
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

End Sub
と出てくるが無視
SelectionChangeと出ている部分をクリック
Changeをクリック
Private Sub Worksheet_Change(ByVal Target As Range)

End Sub
となる。
この間にコードを入力する。
Targetが、セルの値を変化...続きを読む

Q◆ EXCEL自動入力日付を自動で変わらないようにする方法

EXCELで日付を自動入力することが出来て大変便利ですが、一度入力した日付が後日になっても自動的に変わらないようにする方法はありませんか?日付のセルをコピーして値貼り付けをすればよいのですが一度入力したら自動的に変わらないような機能はありませんか?

Aベストアンサー

多分、Today関数をセルに入れてあるのだと思います。
VBA案ですが 日付をA1セルに入れる場合
シート名のタブを右クリック コードの表示をクリック
VBエディターが開いたら

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Address = "$A$1" Then
Target.Value = Date
End If
End Sub

をコピィして閉じます。
A1セルをダブルクリックすると今日の日付が値で入ります。
マクロを使用する事がはじめてなら、セキュリティがかかっているかもしれないので
ツール=>オプションでセキュリティのタブで、マクロセキュリティを
 中 位にしてエクセルを再度開いてみてください。

Qあるセルに特定の文字列を打つと、他のセルに決められた文字が自動入力するように

お世話になります。

表題の通り、
あるセルに特定の文字列を打つと、
他のセルにあらかじめ決められた文字が自動入力するようにしたいです。

具体的に言うと、
(1)セル(A,1)に「キリン」と打ち込むと

   A   B   C   D
1 キリン
2
3
4

(2)1列目の B,C,Dに予め決めておいた文字が入力されるようにしたい

   A   B   C   D
1 キリン 首  長い  アフリカ
2
3
4

のです。
エクセルで可能でしょうか?
詳しい方よろしくお願いいたします!

Aベストアンサー

出来ます。この場合はキリンがキーになっていますね。
先ずこのキーをもとにSheet2にデータを登録しておきます。
   A   B   C   D
1 キリン 首  長い  アフリカ
2 ゾウ  鼻  長い アフリカ
3 
4
次に表示させたいセルに
 A   B             C           D
1  =VLOOKUP(A1,Sheet2!A:D,2) =VLOOKUP(A1,Sheet2!A:D,3) ″ 
2  =VLOOKUP(A2,Sheet2!A:D,2) =VLOOKUP(A2,Sheet2!A:D,3) ″
3  =VLOOKUP(A3,Sheet2!A:D,2) =VLOOKUP(A3,Sheet2!A:D,3) ″
4  =VLOOKUP(A4,Sheet2!A:D,2) =VLOOKUP(A4,Sheet2!A:D,3) ″

を入れておきます。
これで出来ると思います。
エラー表示がいやな場合は、=IF(A1="","",VLOOKUP(A1,Sheet2!A:D,2)) の様にして下さい。

出来ます。この場合はキリンがキーになっていますね。
先ずこのキーをもとにSheet2にデータを登録しておきます。
   A   B   C   D
1 キリン 首  長い  アフリカ
2 ゾウ  鼻  長い アフリカ
3 
4
次に表示させたいセルに
 A   B             C           D
1  =VLOOKUP(A1,Sheet2!A:D,2) =VLOOKUP(A1,Sheet2!A:D,3) ″ 
2  =VLOOKUP(A2,Sheet2!A:D,2) =VLOOKUP(A2,Sheet2!A:D,3) ″
3  =VLOOKUP(A3,Sheet2!A:D,2) =VLOOKUP(A3,Sheet2!A...続きを読む


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

人気Q&Aランキング