[[20170523094638]] 『Googleのスプレッドシートのようなセルをダブルク』(さいわ) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『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


HowToUseはコード例でしかないので、自由に応用すれば良いですよ。(稲葉さんこんな凝ったカレンダ提供したんだなぁ、と感心)
例えば、ダブルクリックで表示ならば、対象のシートモジュールに以下のように追加です。

 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


そう、左側にあるSheet1をダブルクリックし、右側に表示された編集画面に貼れば良いです。
ついでに、特定セルのみダブルクリック可能にするよう、少し変えます。
 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.