[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『Googleのスプレッドシートのようなセルをダブルクリックするとカレンダーが出るようにしたい。』(さいわ)
素人の為作る事が出来ず困ってますご教示ください。
エクセル2007を使用しているものです。
1)Googleのスプレッドシート等でセルをダブルクリックすると
表示されるカレンダーの様なものを作りたいと思っています。 2)尚、エクセルの複数のセルで日付けを入力する欄がある為、 複数のセルで活用したいです。 (日付を入れるセル全ては並行して連動や反映するようなものではありません。 個々に日付を入れるようなイメージです。)
たとえば、D10のセル、C18、D18、C21、D22、C24、D24セル等で ダブルクリックでカレンダー表示、日付選択でセルに日付が 入れられるようにしたい。
エクセルで作成する事は可能なようでしたら作ってみたいのですが 知識の技術が足らず作れません。ぜひご教示頂けたら幸いです。 宜しくお願いします。
< 使用 Excel:Excel2007、使用 OS:Windows7 >
ユーザーフォーム カレンダー 作成 で検索したら参考になる過去ログがあると思います。 ただし、カレンダーコントロールは新しいバージョンのエクセルでは使えないと思います。
いずれにせよ、マクロ等で自分で作り上げていくことになります。 ネット検索したらフリーウェアでアドイン等を提供しているところがあるかもしれません。
※私はGoogleのスプレッドシートは使ったことが無いので、表示されるカレンダーがどんな ものかは存じ上げていません。 (カリーニン) 2017/05/23(火) 10:09
スプレッドシートでカレンダーを使ったことないので、イメージがあっているかわかりませんが
[[20150602101200]] 『ユーザーフォームにカレンダー』(yuki)
こちらを参考にしてください。
ダブルクリック等イベントについては http://www.moug.net/tech/exvba/0050012.html
このあたりを参考にしてください。 (稲葉) 2017/05/23(火) 10:11
有難うございました!
マクロを作成が必要になるのですね。
最近エクセルとまと身に使えるようになったばかりなのでマクロは正直作った事がないので
少し基本的な作成の仕方を調べてみたいと思います。
アドイン提供の件もありがとうございました。
そちらも併せて探してみます!
※Googleのカレンダーはフォームの様な格子状のカレンダーが表示されます。
上側の左右には前後の月に移動できるような矢印があるイメージです。
**********
稲葉様
有難うございました!提供頂きましたURL先参考にさせていただきました!
ふたつお教えください!
一つ目は、参照先のコードに先されている
08)呼び出し方法は以下の通りです。
Sub HowToUse() UFCalendarSimple.FormIni Date End Sub
についてはどちらに記載すればよろしいのでしょうか
mainとsubとユーザーフォームはVBAに入れる事が解ったので素人なりにいま作ってみていますが、
08)〜に記載のコードはどちらに入れるのかがよく解りませんでした…素人質問ですみません。
二つ目は
ダブルクリックすると表示されるようにすると言ったアクション(?)コードの参照先確認しました。
もしこういったコードを挿入するとしたら、mainとsub、ユーザーフォーム
どちらに挿入する事がベストでしょうか。
お手数おかけしますがご教示宜しくお願い致します。
(さいわ) 2017/05/23(火) 10:38
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Cancel = True UFCalendarSimple.FormIni Date End Sub (???) 2017/05/23(火) 10:58
???さんお久しぶりです。 フォローありがとうございます。 皆様から見れば拙いコードですが、当時の精一杯でしたので、そう言っていただけると嬉しいです。
本題ですが、さいわさんの↓の表現 >mainとsubとユーザーフォームはVBAに入れる事が解ったので素人なりにいま作ってみていますが、
わかっているように見えないので不安です。 http://officetanaka.net/excel/vba/beginner/10.htm
こちらを見て、MainとSubは「クラスモジュール」を挿入して記入してください。
(稲葉) 2017/05/23(火) 11:07
有難うございます!
素人過ぎて本当に申し訳ありません…
ですがとても親切にお教え頂けて本当助かっております…感謝もうし上げます!
稲葉様に再度教えて頂いた参照先を参考に
クラスモジュールを二つ作り其々にclsUFCalendarMainとclsUFCalendarSubに名前を変えて
その中に其々対象のコードを入れてみました。
またユーザーフォームも挿入し、こちらはコードの表示に切り替えて、
こちらも参照先にてお教え頂いた稲葉様のコードを入れればよろしいんですよね?
このときに、わたくしが始めご相談した際の稼働理想としている
>D10のセル、C18、D18、C21、D22、C24、D24セル等で >ダブルクリックでカレンダー表示、日付選択でセルに日付が >入れられるようにしたい。
は、稲葉様にお教え頂いている
ユーザーフォームに貼り付けた
'==================================================
'【EV】ラベルのクリックイベント Private Sub clsC_Click(ByVal ID As Long) '================================================== Dim LB As MSForms.Label Set LB = clsC.Ctrl(ID) With LB If ID < 99 Then Selection.Value = CDate(Format(CB.Value & .Caption & "日", "yyyy/mm/dd")) Else Selection.Value = Date - (100 - ID) End If End With Unload Me End Sub
をわたしくしがこうしたいなと理想としている形に修正変更する必要があるという事になりますでしょうか…難しいですね(涙)
また、
稲葉様がご提供くださった
8)の
Sub HowToUse() UFCalendarSimple.FormIni Date End Sub
や
???様が提供くださった
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Cancel = True UFCalendarSimple.FormIni Date End Sub
コードは、
実際にエクセルで見ているシート(sheet1で名前は「日付」です)
と同じ名前のMicrosoft Excel Object のsheet1のところに挿入すればよろしいでしょうか…
聞いてばかりで申し訳ありません…
(さいわ) 2017/05/23(火) 11:34
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) If Intersect(Target, Range("D10,C18,D18,C21,D22,C24,D24")) Is Nothing Then Exit Sub Cancel = True UFCalendarSimple.FormIni Date End Sub (???) 2017/05/23(火) 11:48
有難うございました!!!
で、出来ました!!!嬉しい…!
理想としていた物がちゃんと形になって反映されてます!!
本当にありがとうございます(涙)
教えて頂いた事は大切に記録にとって置きます!!
感謝申し上げます
(さいわ) 2017/05/23(火) 12:53
記録に取るだけでなく、理解するようにしましょう。 (カリーニン) 2017/05/23(火) 13:03
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.