初めての店舗開業を成功させよう>>

エクセルについて教えて下さい。

エクセルのセルをクリックすると、
カレンダーのようなものが表示され、
マウスで選択すると、
セルに日付が入力されるようにするには
どうしたらよいですか?

すみませんが、宜しくお願い致します。

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

A 回答 (4件)

#02です。

foo-mさんがVBAをお使いになるなら、以下のサンプルをいじってみてください。

このサンプルはC4セルがクリックされたときにカレンダーコントロールを表示して、日付を選んだらその日付をC4に書き込み、カレンダーコントロールを閉じるマクロです。

Private Sub Calendar1_Click()
Selection.Value = Calendar1.Value
ActiveSheet.Calendar1.Visible = False
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = "$C$4" Then
ActiveSheet.Calendar1.Visible = True
End If
End Sub

マクロはシートのモジュールとしてペーストして下さいね
    • good
    • 22
この回答へのお礼

回答有り難うございます。
ご連絡が遅くなり、大変申し訳ありません。
教えて頂いたマクロをコピーしてみました。
うまく動かないので何度かトライしています。
勉強してみます。
有り難うございました。

お礼日時:2006/08/01 10:47

>エクセルのセルをクリックすると


これは入力規則の「リスト」のイメージかな。
1ヶ月31日ぐらいの幅なら可能かと思うが、対象日付が多くなるとスクロールして探すのが大変。
>カレンダーのようなものが表示され
これはカレンダーコントロールのようなもの(DatePickerという名称でもある)を言うのでしょうが、VBAの知識が要ったりするので、質問表現振りからすると、質問者が使うのは早すぎるのでは。
その場合セルのクリックではなく、日付のクリックで日付が選べるが
順次移動したセルにあわせてクリックした日付をセットしていくのは
またスキルが要る。固定したセルにセットですむなら、日付を入力するに比べ、それほど便利でないでしょう。
    • good
    • 7
この回答へのお礼

回答有り難うございます。
今は、リストで日付を入力しています。
たくさんの量なので
キーボードから入力するより早く有り難いです。
有り難うございました。

お礼日時:2006/08/01 10:52

エクセルにもカレンダーコントロールが標準装備されているのをご存じですか。



「挿入」→「オブジェクト」 で表示されるリストに
 Microsoftカレンダーコントロール XX.0
が表示されますから、これを選択してみてください。

使い方の解説は下記URLにあります

参考URL:http://www.atmarkit.co.jp/fwin2k/win2ktips/357ca …

この回答への補足

回答有り難うございます。
実際にカレンダーを表示してみました。
説明不足ですみません。
セルのところでカレンダーを表示させて
日付を選択すると
セルに『2007/7/5』と表示するようにしたいのですが。

補足日時:2006/07/03 16:36
    • good
    • 11

エクセルでカレンダーを作成するための補助ソフト「Ecal」


下記のURLからDL出来ます。

参考URL:http://www.geocities.jp/kaname78web/ecal.html
    • good
    • 1
この回答へのお礼

回答有り難うございます。
このようなものがあるのですね。
びっくりしました。
有り難うございました。

お礼日時:2006/08/01 10:53

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

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

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

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

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

QExcel で日付入力のプルダウンメニューを簡単に作る方法

Excel 2003 でも Excel 2007 でもかまいません。(OSもXP・Vistaどちらも使っています。)
日付入力はプルダウンメニューから選ばせるとき、どこかのセルに選択肢のリスト(例えば M1:M31に 2008/10/1~2008/10/31)を作っておいて、入力規則を「リスト」にする、という方法はわかりますが、リストを作らないでもっと簡単に選ばせる方法はないでしょうか?

イメージとしては、セルB2に、日付未入力の段階では
「(ここに日付を入力)」
と表示させておいて、▼を押すとプルダウンが現れて、その先頭は今日の日付(=today() ??)で、下に向かって日付が古くなっていく(とりあえず1週間分くらいあれば足ります)という感じです。任意の日付を(2007/4/5など)入力できるとなお良いですが無理は言いません。(私は、入力規則をリストまたは任意日付、とする方法を知らないので。)

セルに値を入力、じゃなくて、何かのコントロールでもかまいません。マクロで日付を読み込めることが必須条件です。
大がかりなマクロを組めば期待するものを実現できるかも知れませんが、なるべくシンプルな方法をご存じの方、いらっしゃいませんでしょうか。実は私自身、Excel 2007 で「(ここに日付を入力)」などを見たことがある気がするのですが、ど忘れしてしまいました。よろしくお願いします。

Excel 2003 でも Excel 2007 でもかまいません。(OSもXP・Vistaどちらも使っています。)
日付入力はプルダウンメニューから選ばせるとき、どこかのセルに選択肢のリスト(例えば M1:M31に 2008/10/1~2008/10/31)を作っておいて、入力規則を「リスト」にする、という方法はわかりますが、リストを作らないでもっと簡単に選ばせる方法はないでしょうか?

イメージとしては、セルB2に、日付未入力の段階では
「(ここに日付を入力)」
と表示させておいて、▼を押すとプルダウンが現れて、その...続きを読む

Aベストアンサー

> ▼を押すとプルダウンが現れて、その先頭は今日の日付(=today() ??)で、下に向かって日付が古くなっていく(とりあえず1週間分くらいあれば足ります)

> リストを作らないで、という条件付きでお願いします。

自分ではつくらないけどVBAに作らせちゃうというのはだめですか?

Sub 日付リスト作成()
Dim lst As String
Range("B2") = "(ここに日付を入力)"
With Range("B2").Validation
.Delete
For i = 0 To 7
lst = lst & Format(Date - i, ",yyyy/mm/dd")
Next i
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:=lst
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = "指定日"
.InputMessage = ""
.ErrorMessage = "リストの中から選んでね。"
.IMEMode = xlIMEModeNoControl
.ShowInput = True
.ShowError = True
End With
End Sub

> ▼を押すとプルダウンが現れて、その先頭は今日の日付(=today() ??)で、下に向かって日付が古くなっていく(とりあえず1週間分くらいあれば足ります)

> リストを作らないで、という条件付きでお願いします。

自分ではつくらないけどVBAに作らせちゃうというのはだめですか?

Sub 日付リスト作成()
Dim lst As String
Range("B2") = "(ここに日付を入力)"
With Range("B2").Validation
.Delete
For i = 0 To 7
lst = lst & Format(Date - i, ",yyyy/mm/dd")
...続きを読む

Qエクセルにカレンダー挿入

エクセルにカレンダーを挿入し、尚且つ、その挿入したカレンダーに書き込みしたいのですが、そんな方法ないですか??カレンダーを挿入まではできるのですが、カレンダーに書き込みが出来ません。。。><

Aベストアンサー

ふつーに計算式でワークシート上にカレンダーの日付を計算させ,適宜行や列を空けて書き込みできるセルにして,使ってみたらどうでしょう。

カレンダーの作成例:
http://www.eurus.dti.ne.jp/~yoneyama/Excel/jituyou/calendar.htm

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

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

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

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

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

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

宜しくお願いします。

Aベストアンサー

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

でどうでしょうか?

QVBAのカレンダーコントロールについて・・・

Excel 2010を使用しています。
以前は、2007を使っていたんですが・・・2010になったら
カレンダーコントロールの『DTPicker』と『MonthView』が
使えなくなっていました。

以前はちょっとした日付の選択の時に使って重宝していましたが・・・
使えなくなったのが、とても残念です。

どうにかして使える様になれればと思うのですが・・・
私には、新たにカレンダーコントロールを作る知識もなく
どうしたら良いか困っています。

そこで、VBAの初心者にでも扱える様なカレンダーコントロール作成方法などが
ありましたら教えて頂けますでしょうか?

新たに作るといった場合は、どの様に作ったら良いか
教えて下さい。

お手数ですが、本当に宜しくお願いしまます。

Aベストアンサー

Accessの場合は、日付選択カレンダーがついてきてますので、まあいいかな?
ですがExcelには何も用意されていないのですね。
今頃気が付きました。
で、excel2010 日付選択カレンダー にてGoogleと

http://excel-2010.seesaa.net/article/154360048.html
ソースコードも公開されています。有り難い限りです。
や角田氏の
http://www.h3.dion.ne.jp/~sakatsu/Excel_Tips06.htm
でもご本人のものや他の方のアドインを紹介されていますよ。

Qエクセルで、条件に一致した行を別のセルに抜き出す方法

エクセルで、指定した条件に一致するセルを含む行をすべて抜き出す方法が知りたいです。

たとえば、

<A列> <B列> <C列>
7/1 りんご 100円
7/2 ぶどう 200円
7/2 すいか 300円
7/3 みかん 100円

このような表があって、100円を含む行をそのままの形で、
別のセル(同じシート内)に抜き出したいのですが。

7/1 りんご 100円
7/3 みかん 100円

抽出するだけならオートフィルターでもできますが、
抽出結果を自動的に、別の場所に、常に表示させておきたいのです。

初歩的な質問だと思いますが、検索しても分からなかったので、よろしくお願いします。

Aベストアンサー

同じ質問が結構よく出てますが、そんなに初歩的でもありません
別シートのA1セルに「100円」と入力し、そのシートの任意のセルに以下の式を貼り付けて下さい。後は、下方向、右方向にコピー。
日付のセル書式は「日付」形式に再設定してください

=IF(COUNTIF(Sheet1!$C:$C,$A$1)>=ROW(A1),INDEX(Sheet1!A:A,LARGE(INDEX((Sheet1!$C$1:$C$500=$A$1)*ROW(Sheet1!$C$1:$C$500),),COUNTIF(Sheet1!$C:$C,$A$1)-ROW(A1)+1)),"")

データ範囲は500行までとしていますが、必要に応じて変更して下さい

Qエクセルで打ち込んだ数字を自動で別シートに表示したい

エクセルでセルに打ち込んだ数字を自動で別シートに表示できる方法があれば、教えてください。

例えば、シート1のC1に5を打ち込んだら、シート2のD2にシート1で打ち込んだ5が自動で表示される。

また1列すべてを自動で表示させる場合、一つのセルの時と違いがありましたら教えてください。よろしくお願いします。

Aベストアンサー

こんばんは。
入力したセルの値を合計とかでなくて、
純粋に別のシートに自動的に表示したいのであれば、
以下の方法があります。

1.1つのセルだけの場合
例)シート1のC1に5を打ち込んだら、
  シート2のD2にシート1で打ち込んだ5が自動で表示される

⇒シート2のD2のセルをアクティブにして「=」を入力
 した後、シート1のC1をクリックする。
 そうするとD2のセルに「=Sheet1!C1」と表示され、値が自動的に
 表示されるようになります。

2.1列全てコピーしたい場合。
  コピー&リンク貼り付けを使うと便利です。

例)例)シート1のC1~C5に何かを入力したら、
  シート2のD2~D7にシート1で打ち込んだものが自動で表示される

  シート1にあるコピー元のセルを範囲選択して、
  シート2のD2の上で「右クリック」⇒「形式を選択して貼り付け」
  をクリックします。

  そして出てきた小さな画面の左下にある「リンク貼り付け」という
  ボタンをクリックすると完成です。
  試してみてください。。

  念のためにリンク貼り付けを図解しているURLを載せておきます。
  参考にしてみてくださいね。。
  http://www.geocities.jp/office_inoue/excel/eq21.htm

こんばんは。
入力したセルの値を合計とかでなくて、
純粋に別のシートに自動的に表示したいのであれば、
以下の方法があります。

1.1つのセルだけの場合
例)シート1のC1に5を打ち込んだら、
  シート2のD2にシート1で打ち込んだ5が自動で表示される

⇒シート2のD2のセルをアクティブにして「=」を入力
 した後、シート1のC1をクリックする。
 そうするとD2のセルに「=Sheet1!C1」と表示され、値が自動的に
 表示されるようになります。

2.1列全てコピーしたい場合。
  コ...続きを読む

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

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

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

よろしくお願いします。

Aベストアンサー

clam_chowderさん、こんにちは。

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

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

Q【Excelマクロ】カレンダーでの日付指定機能が使えるフォーム

Excelのマクロで、Windowsの「日付と時刻の設定」みたいな、
カレンダーで日付の指定ができるようなフォームを作りたいのですが
参照設定で出てくるカレンダーコントロールはAccessが入ってないとダメらしく
また、カレンダー機能のために、該当するOCX(MSCAL.OCX)を添付して
Excelブックを提供するのはライセンス上問題があるそうです。
ExcelVBAで簡単にカレンダー機能を実現する方法はありますでしょうか?
(市販のコントロール買うとかはなるべくナシで^^;)
提供時にOCXとかDLLとかのファイルがついてるとうざいので
なるべくXLSファイル単体で動かしたいです。

むりやり自作する方法に関する技術情報のご紹介でもありがたいです。
何卒よろしくお願い申し上げます。

Aベストアンサー

この中に書かれている方法のどれかでできそうな?
http://www.h3.dion.ne.jp/~sakatsu/Excel_Tips06.htm

Qエクセルで条件に一致したセルの隣のセルを取得したい

下のような「得点」という名前のシートがあります。
(「田中」のセルがA1です。)

 [ 田中 ][ 10 ][ 200 ]
 [ 山田 ][ 21 ][ 150 ]
 [ 佐藤 ][ 76 ][ 250 ]
 [ 鈴木 ][ 53 ][ 350 ]

別のシートのA1セルに、「佐藤」と入力すると、

 [ 佐藤 ]

「得点」シートから「佐藤」の列を見つけて、B1、C1に

 [ 佐藤 ][ 76 ][ 250 ]

のように表示させたいのですが、B1、C1にはどのような式を書けば良いのでしょうか。
「得点」シートでは氏名が重複する事はありません。
IF文を使うと思うのですが、いまいち良く分かりませんでした。

よろしくおねがい致します。

Aベストアンサー

こんにちは!
VLOOKUP関数で対応できます。
IF関数と併用すればエラー処理が可能です。

Excel2007以降のバージョンであれば
B1セルに
=IFERROR(VLOOKUP($A1,得点!$A:$C,COLUMN(B1),0),"")
としてC1セルまでオートフィルでコピー!
そのまま下へコピーすると行が2行目以降でも対応できます。

Excel2003までの場合は
=IF($A1="","",VLOOKUP($A1,得点!$A:$C,COLUMN(B1),0))

としてみてください、m(_ _)m

Q別のシートから値を取得するとき

Worksheets("シート名").Activate
上記のを行ってから別シートの値を取得するのですが、
この処理を行うと指定したシートへ強制的にとんでしまいます。。。

※イメージ
For ~ To ~
  Worksheets("シートA").Activate
  シートAの値取得
       :
  Worksheets("シートB").Activate
  シートBの値取得
Next

このイメージ処理を行うとものすごい勢いで画面がチカチカします。。。
シートを変えずに他のシートから値を取得する方法はないのでしょうか。
教えてください!

Aベストアンサー

Worksheets("シートA").Range("A1")

みたいな感じでできませんか?


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

人気Q&Aランキング

おすすめ情報