
Excel 2003 でも Excel 2007 でもかまいません。(OSもXP・Vistaどちらも使っています。)
日付入力はプルダウンメニューから選ばせるとき、どこかのセルに選択肢のリスト(例えば M1:M31に 2008/10/1~2008/10/31)を作っておいて、入力規則を「リスト」にする、という方法はわかりますが、リストを作らないでもっと簡単に選ばせる方法はないでしょうか?
イメージとしては、セルB2に、日付未入力の段階では
「(ここに日付を入力)」
と表示させておいて、▼を押すとプルダウンが現れて、その先頭は今日の日付(=today() ??)で、下に向かって日付が古くなっていく(とりあえず1週間分くらいあれば足ります)という感じです。任意の日付を(2007/4/5など)入力できるとなお良いですが無理は言いません。(私は、入力規則をリストまたは任意日付、とする方法を知らないので。)
セルに値を入力、じゃなくて、何かのコントロールでもかまいません。マクロで日付を読み込めることが必須条件です。
大がかりなマクロを組めば期待するものを実現できるかも知れませんが、なるべくシンプルな方法をご存じの方、いらっしゃいませんでしょうか。実は私自身、Excel 2007 で「(ここに日付を入力)」などを見たことがある気がするのですが、ど忘れしてしまいました。よろしくお願いします。
No.3ベストアンサー
- 回答日時:
> ▼を押すとプルダウンが現れて、その先頭は今日の日付(=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
なるほど!美しい。
#2のimogasiさんのご回答を見て初めて知ったのですが、VBA上で
Formula1
の部分でプルダウンリストを直接指定できるのですね。シート上にリストのスペースを用意したくない、という目的に合致していて助かります。あとは「マクロの記録」で、コードが出てきますが、
With の中に For 文を入れるとこんな便利なことができる、
というのはとても勉強になりました。(.でしか続けられないと思いこんでいたので。)
ありがとうございます!!
No.2
- 回答日時:
リストを使わないで、に拘っているが、使っている人の横で見ただけではその仕組みはわからないでしょう。
どれだけ複雑な知識と技能によって出来上がっているかわからない。エクセルの普通のやり方では出来ません。
シートのセルにリストの値を持たない、でならできます(入力規則のリストの設定で直接指定)が、いずれ日々が進むと作り直しになります。それを自動で7日先とかにずらして進めていくとすると、VBAの仕組みが必要です。勉強してください。
もう少し先を行く人は、コントロールという仕組みで、小型カレンダーのようなものを表示させ、日付をクリックすると日付をセルにセットできます。年・月も移動させられます。
表面だけ見るウインドウズのGUIもそれなりの仕組みがあって、最低VBA程度は勉強しないと、さらにコントロールの勉強をしないと、エクセル程度だけの勉強では、使えません。
説明例
http://www.atmarkit.co.jp/fwin2k/win2ktips/357ca …
上記に注意事項を加えておくと
Sheet1等のコード表示で出るVBEの画面にイベントのコードを貼り付ける。
コードは上記WEBに載っているが
Private Sub calendar1_Click()
'Cells(1, 1).Value = Calendar1.Value
ActiveCell = Calendar1.Value
End Sub
の方が応用が利くと思う。
これらも「カレンダーコントロール」でGoogle照会すれば
すぐ出てくることだ。そういうのをやったのかな。
ご回答ありがとうございます。
VBAは仕事でけっこう使っていますが、コントロールはからっきし弱いです。自分の身の丈以上のことをやろうとしているからかも知れません。
カレンダーコントロールの名前は初めて聞きました。だいぶイメージに近いです!カレンダーコントロールの存在を知らなかったので(プルダウンばかりイメージしたので「カレンダー」という発想もなかった)「カレンダーコントロール」について調べてもいませんでした。
早速やってみようと思ったら私のエクセル(自宅は2007)でできなかったので、もう少し調べてみます。ACCESSが入っていないから追加コントロール候補にカレンダーが出てこないのかな。
ところで前半部分の、入力規則のリストの設定で直接指定、というのは目からうろこでした。
10/3,10/5-10/10,10/13
という方法ですね。なるほど、「要素」みたいな数列で列記できるんか。便利。VBAでずらす方法はわかります。
ここに、ワイルドカードを入れて、「リストから選ぶ、または任意の日付を入力する」という規則を作れませんか?
10/3,*/*
10/3,?/?
10/3,#/#
など試してみましたがダメでした。もう少し粘って調べて、解決しなければ明日別の質問を立ててみます(人に頼る、という姿勢は良くないですけどね)。ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルについて教えてください。 2 2023/06/14 11:11
- その他(データベース) Accessフォームからパラメーターで表示したレコードを指定のExcelのセルへ転送する方法について 2 2022/08/22 18:04
- Excel(エクセル) Excel2019、2021の日付、曜日の表示について 2 2022/11/29 15:01
- Excel(エクセル) エクセルで、特定のセルの内容を更新すると、別の特定セルに 更新日付が自動的に表示させる方法はあります 1 2022/11/14 21:03
- Visual Basic(VBA) tatsumaru77様 昨日回答して頂いたものです。 すみませんが、昨日の質問で1つ補足があります 1 2022/05/15 15:06
- Excel(エクセル) Excelについて Excel初心者です。 日報に数字を入力する時、誤った数字を入れると、セルが赤く 6 2023/03/31 17:05
- Excel(エクセル) エクセルの祝日に色が反映しない 4 2022/05/18 09:58
- その他(Microsoft Office) 従業員増減対応で当番種類の増減対応な当番表 21 2022/07/19 07:30
- システム CSVファイルのマッピング処理の省力化 1 2022/11/24 00:01
- Excel(エクセル) 【Excel】指定のセル内容を基に別シートのセルを検索して選択する【VBA】 1 2022/06/16 16:16
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
マクロボタンを押すと、ファイ...
-
差し込み印刷に当日の日付が入...
-
日付の大小の表現
-
「24日の0時」って・・・
-
エクセルで日付別にシートを分...
-
「時間」、「期日」、「日付」...
-
会社や役所などに提出する書類...
-
Excelについて
-
2つの日付の中間の日付 エク...
-
エクセル マクロ 名前を付けて...
-
EXCELで日付を****年上期、****...
-
Accessにて24時を越えた場合の表示
-
回覧板の日付について質問です...
-
Array関数のネスト
-
エクセルで日付け表示で、明治...
-
履歴書の日付間違いで落ちますか。
-
ACCESS フォームで入力した日付...
-
Excelで1週間毎の集計(今週と...
-
日付以外のデータを抽出したい...
-
Excelでヘッダに前日の日付を表...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
マクロボタンを押すと、ファイ...
-
「24日の0時」って・・・
-
回覧板の日付について質問です...
-
日付の大小の表現
-
差し込み印刷に当日の日付が入...
-
「時間」、「期日」、「日付」...
-
エクセル マクロ 名前を付けて...
-
エクセルで日付別にシートを分...
-
EXCELで日付を****年上期、****...
-
履歴書の日付間違いで落ちますか。
-
Excelについて
-
フォームの値をクエリーに反映...
-
エクセルで6ヵ月後を自動入力で...
-
会社や役所などに提出する書類...
-
日付以外のデータを抽出したい...
-
ACCESSで日付ごとに自動連番(...
-
エクセルで日付け表示で、明治...
-
Excelで1週間毎の集計(今週と...
-
Excelでヘッダに前日の日付を表...
-
2つの日付の中間の日付 エク...
おすすめ情報