カレンダー

Office2010からカレンダーコントロールmscal.ocxが削除されました。


1.Office 2010は、古いバージョンのOfficeと共存できるため、Office 2007などを削除しなかった場合、mscal.ocx を利用できます。


  詳細は、後半のMicrosoft TechNetの説明に関連した内容を参照ください。

2.次の図は、「 図形 」の長方形を使用した 自作 日付入力カレンダー です。


 削除された日付入力の 解決方法 のひとつとして、Windows 版 Excel2010 マクロ の vba を使用した自作カレンダーを作成しました。
 vbaを使用し、ワークシート上に長方形を新しく作り出しています。
 Excel 2003 で動作できるように、変換しました。
 動作は、excel 2003, 2007, Windows 版 excel 2010 さらに excel 2013 で可能です。
  ※ ダウンロード方法は、記事の後半にあります。

calendar

次の図は、西暦の年数を変更する場合、VBAで作り出す図形です。
 ◎ 年数の表示をクリックすると、表示されます。
calendar

次の図は、月数を変更する場合、VBAで作り出す図形です。
 ◎ 月数の表示をクリックすると、表示されます。
calendar

次の図は、書式が日付の設定になっているセルをクリックしたとき表示される、VBAで作り出すアイコンの図形です。
 ◎ 日付入力セルをクリックすると、カレンダーアイコンが表示され、そこを押すことで簡単にカレンダーを表示できます。
calendar icon



【 自作 Excel popup calendar 使用方法の説明 】

1) ダウンロードしたBOOKの任意のワークシート上で動作します。
   最初、カレンダーの図形は、ありません。 マクロにより、新しくカレンダーの図形を描き出します。
2) 日付を入力したい任意の「セル」を選択します。
   日付の書式は、この「セル」に対して決めます。
◎ 日付書式を設定したセルを初めて選択した場合、初回選択に限り カレンダーアイコンがそのセルの右隣りのセルに表示されます。
3) 「表示」タブをクリックし、マクロの▼マークをクリック、「マクロ表示」を選択します。

 ※ 簡単な マクロ の実行方法 と 記録方法の詳細は、「 マクロ 」記事で説明しました。

4) 「マクロ」ダイアログボックスが表示され、リストからgen_calを選び、「実行」ボタンを押します。
  最も簡単にマクロを実行する方法は、ショートカットキーまたはボタン・アイコンを利用することです。
  (a) Ctrl+Shift+Gキーを押すと簡単に実行できます。
  (b) 選択されていない「日付入力セル」を選択すると、カレンダーアイコンが表示され、それをクリックし、簡単に実行できます。
5) 上図の中の「<<先月」、又は「来月>>」をクリックし、月 を変更できます。
6) 日付をクリックすると、選択した「セル」に日付を入力させます。
7) 自動的にカレン ダーがワークシートから削除され、消されます。
8) カレン ダーを削除せず残しておきたい場合、A_Aclick サブルーチンのCall del_cal 一行をコメントし、
  Call del_cal を実行させないようにします。
  「カレン ダー」を強制的に削除したい場合、 del_cal マクロを実行します。

次のリンクよりダウンロードできます。 ファイルは、圧縮してあります。
popup calendar ダウンロード

一方、次のリンクよりカレンダーアイコン APPTS.ICO を使用しないEXCEL Bookをダウンロードできます。
小さい■アイコンを四角図形で描写します。
アイコンファイルの格納パス(path)が標準の場所でない場合に有効です。
popup calendar アイコン図形作成 タイプ ダウンロード


◎ Excel 2003 は、次のリンクよりダウンロードできます。
popup calendar 2003 ダウンロード

  ※ なお、EXCEL 2003の日付の文字色と太さを固定する方法は、次の手順に従います。
  【1】popup_cal_2003マクロを実行できるExcel 2003 Bookを開きます。
  【2】Alt + F11 キーを押し、VBEを起動します。
  【3】Sub gen_cal()の15行目以降にある次の2つのVBAのステートメントを修正します。
     intFontColor = 1  ’カラーコード1番は、黒です。
     boolFlagBold = True ’True は、太字、Falseは、細字です。
   VBA

  【4】Excelファイルを保存します。

※ ダウンロードしたい、と思った人に提案します。
 本サイトは、皆様のご協力により、25,100ページ以上にリンクされています。
 ありがとう、ございます!  皆様に、感謝致します。

 さらなる協力をお願い致します。「あなたのブログに次のHTMLコードを貼る」と、あなたのブログの人気が高まるかも知れません!
この「サイト」と「キーワード」は、検索エンジンから高い評価を得ているからです。
 無料です!

――――次の1行――――<a href="http://excel-2010.seesaa.net/" ><u><font color="blue"><b>excel 2010 新機能 は便利です!</b></font></u></a>――――前の1行――――

3.Excel 2010は、カレンダーコントロールが使用できません


  ここで、カレンダーコントロールとは、MS Accessのコントロールmscal.ocxを意味しています。
  使用できない理由は、Office 2010 professional のAccessからこのコントロールが削除されたからです。
  Microsoft TechNetの説明には、次のように書かれています。


 excel 2010のカレンダー コントロール
カレンダー コントロール (mscal.ocx) は、Access ワークシートで使用できる Microsoft Access の機能でした。
Access 2010 ではカレンダー コントロールが削除されており、Excel 2010 で使用できません。
代わりに、日付の選択を使用するか、独自のカスタム カレンダー コントロールを使用します。

access 2010 で削除された機能について
ここでは、Access 2010 で削除された、特に IT 管理者に関連する機能について説明します。
Access 2010 では、Microsoft カレンダー コントロール (mscal.ocx) は使用できなくなりました。
代わりに、Access 2010 の日付選択コントロールを使用できます。
以前のバージョンの Access でカレンダー コントロールを使用していた場合、
アプリケーションを Access 2010 で開くと、エラー メッセージが表示され、
カレンダー コントロールは表示されません。 』

ただし、PCにAccsses 2007、またはVB6.0ランタイムライブラリーがインストールされていない条件の場合です。
Office 2010は、古いバージョンと共存できるため、Office 2007などと共存させた場合、mscal.ocx を利用できます。
また、VB6.0ランタイムライブラリーをインストールした場合、Date and Time Pickerコントロールを使用できます。

4.「 日付の選択 」とは


Microsoft TechNetに書かれていた、「 日付の選択 」とは何でしょうか?

Microsoft Office Access の新機能サイト

上記のページに次の説明があります。

『  日付選択カレンダー
メモ これは Access 2007 で導入された機能です。
日付/時刻データ型を使用するフィールドやコントロールでは、
Access 2007 で導入された対話形式の組み込みカレンダーが自動的にサポートされます。
カレン ダーのボタンは、日付の右側に自動的に表示されます。
たとえば、今週の金曜日の日付を知りたい場合、ボタンをクリックすると、
カレンダーが自動的に表示され、目的の日付を探して選択できます。
プロパティを使用して、フィールドやコントロールのカレンダーを表示しないようにすることもできます。』

結果として、上記の「日付選択カレンダー」ひとつに 日付選択(DatePicker)機能がまとめられました。
英語のMicrosoftサイトでは、日付選択を Date Picker と記述しています。


カレンダーの作り方は、詳細情報を説明していますので、参照願います。


excel2010の便利な機能を活用しましょう。


excel 2010 新機能 便利です! Homeへ
posted by Yy at 21:35 | Comment(123) | カレンダー | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
Office2003とOffice2010の混在環境で
Excelでカレンダーコントロール使用しているファイルがあり、使用できなくなりここにたどり着きましたが、Excel2003ではエラーが出るようですが、何か特別な設定が必要なのでしょうか?
Posted by QPID at 2011年01月29日 00:09
QPID 様
質問ありがとうございます。
Excel2003を起動し、次の操作をExcel2010と同様に実行願います。
手順は、主に次の通りです。
1.Excel2010を終了します。
2.mscal.ocxを「検索」し、そのファイルのパス名をメモします。
3.mscal.ocxをC:\WINDOWS\system32\フォルダーへコピーします。
4.Excel2010を起動し、ALT+F11キーを押し、VBEを開きます。
5.「挿入」−「ユーザーフォーム」をクリックし、「ツールボックス」も開きます。
6.「挿入」−「その他のコントロール」をクリックし、
  リストの中にある Calendar Control にチェックを入れ、OKを押します。
7.「ツールボックス」の右下端にアイコンが追加されます。
8.UserForm1へそのアイコンを挿入すると、カレンダーを使用できます。
   ※ワークシートには貼り付けできません。

◎Excel2003をメインのエクセルにし、起動する方法を試みましたか?
次の、1行をコマンドプロンプトを開き実行願います。
"C:\Program Files\Microsoft Office\office11\excel.exe" /regserver

幸運を祈ります。
  ありがとうございました。
(サイト管理者)
Posted by Yy at 2011年01月29日 06:21
すいません、私の質問の方法が悪かったようです。

Excel2003と2010の混在環境というのは、会社でOffice2010へ移行途中のためOffice2003とOffice2010の端末が混在しています。
一つの端末内にOfficeのバージョン違いが混在しているわけではありませんでした。

いくつかのExcelファイルにカレンダーコントロールが使用されており共有ファイルのためExcel2003とExcel2010の双方のPCより
アクセスの必要があるため代替手段を探していました。
それでこのサイトのExcel popup calendarにたどり着いたのですが、Excel2003環境でうまく動かないようなので
ご質問させていただきました。

再度ご検証いただければと思います。

shp.ShapeStyle = msoShapeStylePreset30のところで止まってしまいます。
Posted by QPID at 2011年02月01日 13:36
QPID 様
コメントありがとうございます。
Excel 2003 popup calendar 2003を作成し、アップロードしました。
この記事を更新しましたので、参照願います。
ご指摘、どうもありがとうございました。
(サイト管理者)
Posted by Yy at 2011年02月01日 20:09
さっそくの修正版UPありがとうございます。
私のスキルではまだまだ理解できなかったので
助かりました、勉強させていただきます
ありがとうございました。
Posted by QPID at 2011年02月03日 20:21
お世話になります。
popup calendar 2003早速重宝させていただいています。
重ね重ねで恐縮なのですが、このカレンダーは当方では表示したまま
使用していますが、選択した日付部分の色を変えて、
フォントを太くすることは可能でしょうか?
Posted by QPID at 2011年02月04日 20:24
QPID 様
コメントありがとうございます。
記事を更新いたしました。
表示カレンダーの上部中央をクリックし、日付文字色と太さを修正できます。
勉強になりました。
どうも、ありがとうございました。
(サイト管理者)
Posted by Yy at 2011年02月05日 13:08
度々の更新感謝感謝です。
これで最低限の業務はこなせるように
環境が整いました、ありがとうございます。
私にはまだまだ手に余ることだらけなので
勉強しながら使用させていただきます。

また機会がありましたらよろしくお願いします。
Posted by QPID at 2011年02月07日 00:23
QPID 様
こちらこそ、宜しくお願い致します。
(サイト管理者)
Posted by Yy at 2011年02月07日 05:12
初めまして。
popup_cal.xls をダウンロードさせていただきました。
Excel 2010でカレンダー コントロールが使えなかったので、とても助かりました。
曜日がわかるように変更して使わせていただきます。
ありがとうございました。
Posted by aki at 2011年02月18日 16:30
aki 様
コメントありがとうございます。
曜日を追加し、記事を更新いたしました。
新しい popup_cal.zipをアップロードしました。
ご指摘、どうも、ありがとうございました。
(サイト管理者)
Posted by Yy at 2011年02月18日 21:03
こんばんは。
先日よりご使用させていただいており、お世話になっています。
度々で恐縮なのですが当方ではカレンダーを表示させて反映
させるセルも固定なのですが、選んだ日付がセルに表示されている間は
カレンダーの日付部分の色が反転したまま、または別の色の状態なるようにはできないでしょうか?
(要するにカレンダーコントロールと同じようにですね)
Posted by QPID at 2011年02月26日 01:20
こんばんは。
先日よりご使用させていただいており、お世話になっています。
度々で恐縮なのですが当方ではカレンダーを表示させて反映させるセルも固定なのですが、
選んだ日付がセルに表示されている間はカレンダーの日付部分の色が反転したまま、
または別の色の状態になるようにはできないでしょうか?
(要するにカレンダーコントロールと同じようにですね)
Posted by QPID at 2011年02月26日 01:21
QPID さま
コメントありがとうございます。
セルの日付を反転させました。
popup_cal_2003.zipをアップロードしました。
ご指摘、どうも、ありがとうございました。
(サイト管理者)
Posted by Yy at 2011年02月26日 06:02
感謝感謝!!です。
Posted by QPID at 2011年03月01日 22:22
QPID さま
またがんばります。
ありがとうございました。
(サイト管理者)
Posted by Yy at 2011年03月02日 05:15
こんばんは。
当方も若干変更して使用させていただいております。
カレンダーを消さずに表示したまま
特定のセルで日付の変更を行っていますが、日付を変更した際に反転するような
仕様変更がなされていますが、当方ではそのようにならないのですが・・
日付のボタンを押した際は一瞬反転しているようですが、
反転したままにはなりません。
これはこのような仕様なのか、当方の使い方が悪いのでしょうか?
Posted by jyojyo at 2011年03月10日 19:02
jyojyo 様
コメントありがとうございます。
Excel 2007,2010のセルの日付を反転させました。
popup_cal.zipをアップロードしました。
ご指摘、どうも、ありがとうございました。
(サイト管理者)
Posted by Yy at 2011年03月10日 21:38
お世話になります。
すばらしいカレンダー、早速ダウンロードさせていただきました。
ありがとうございます。
使わせていただきながら、注文付けるようで恐縮なのですが、カレンダーを生成したとき、今日の日付のオブジェクトの塗りつぶし色を変えるようにするには、どこを修正すれば良いのでしょうか?
日付のオブジェクトの[図形の書式設定]-[塗りつぶし]-[色]を白にすると、きれいに青と白のグラデーションになるのですが、カレンダーを表示したときに、今日を示すオブジェクトがそのように表示できればなぁ・・・と思うのですが。ご教示お願いできませんでしょうか?
何卒よろしくお願いいたします。
Posted by ponta730 at 2011年05月25日 18:28
書き忘れました。
Excel2007、2010で動作させたく思っております。
よろしくお願いいたします。m(_ _)m
Posted by ponta730 at 2011年05月25日 18:31
ponta730 様
コメント どうも、ありがとうございます。
日付のオブジェクトの塗りつぶし色を「白」に反転させました。
(1)今日
(2)入力されている日付
以上の2日に対して表示を変更しました。
popup_cal.zipをアップロードしました。

ご指摘、どうも、ありがとうございました。

(サイト管理者 Yy)
Posted by Yy at 2011年05月26日 16:51
こんばんは。
すごい!すごい!です。
感動です。
初めてのコメントで、注文まで付けさせて頂いたのに、ご対応いただき、本当に感謝しております。
私自身も大変勉強になりました。
本当にありがとうございます。

またお願いすることもあるかと思いますが、どうぞよろしくお願いいたします。m(_ _)m
Posted by ponta730 at 2011年05月26日 21:14
ponta730 さま
またがんばります。
ありがとうございました。
(サイト管理者)
Posted by Yy at 2011年05月27日 07:30
Excel 2003 popup calendar 2003を利用しようとしました。私の環境にはC:\Program Files\Microsoft Office\OFFICE11\FORMS\1041\APPTS.ICOが存在しません。これはインストールがおかしいのでしょうか。それでOffice12の下からコピーしました。日付のセルをクリックするとアイコンが表示されますがexcel2010と異なり外枠の中に小さなカレンダーアイコンが表示されます。excel2010と同じ見え方にしたいのですがOLEObjects.Addの限界でしょうか。
Posted by 谷口 彰 at 2011年07月08日 11:24
谷口 彰 さま
コメント どうも、ありがとうございます。
MSDNの「OLEObjects.Add メソッド」の解説ページを参照しました。
http://msdn.microsoft.com/ja-jp/library/microsoft.office.interop.excel.oleobjects.add%28v=office.11%29.aspx
次のパラメーターを指定しました。
DisplayAsIcon := True
IconFileName :=  (APPTS.ICOのパス)
IconIndex := 1
しかし、実行中にエラーが出ます。
以前は、正常にアイコン画像が表示されていたようでした。
現在、マクロが正常に動作しません。
良い方法が別にあるかも知れません。
成功した場合、ZIPファイルをアップロードいたします。

貴重なコメント どうも、ありがとうございました。
(サイト管理者 Yy)
Posted by Yy at 2011年07月08日 20:52
先日このページでとても有用なカレンダーを見つけ、現在自分のコードに組み込んでいるところです。とても良く出来ていますね。

質問なのですが、初めてカレンダーを表示させた時に「<<先月」ボタンを押しても「月」表示が変更されないようです。一度「来月>>」ボタン等を押してあげると、以後は正常に動作します。

コードを分析してみたのですが、どこが悪いのか分かりませんでした。
もし当方の環境のみの問題であれば申し訳有りません。
Posted by Shion at 2011年12月03日 20:48
Shion 様
コメント ありがとうございます。
問題を現在分析中です。
しばらくお待ちください。

(サイト管理者 Yy)
Posted by Yy at 2011年12月04日 04:49
「月」表示が変更されない件ですが、以下のようにすると正常に変更されるようです。
disp_cal()内で

ActiveSheet.Shapes("A_A月").DrawingObject.Caption = Format(intS, "m")
(追加)⇒ActiveSheet.Shapes("A_A月").ShapeStyle = msoShapeStylePreset30

なぜShapeStyleを設定すると所望の動作になるのかは不明ですが、とりあえずご報告しておきます。
Posted by Shion at 2011年12月09日 22:39
Shion 様
コメント ありがとうございます。
ご指摘どうりかもしれません。
念のため次の「再表示」処理を追加しました。

gen_cal の最後のupdateの1行前に次のステートメントを追加しました。
 call disp_cal

月の表示がされない原因は、良く分かりませんでした。
修正した 圧縮ファイルをアップロードいたしました。
コメント どうもありがとうございました。

(サイト管理者 Yy)
Posted by Yy at 2011年12月10日 05:55
Shionです。色々とご対応どうも有り難うございました。

情報が小出しになってしまい申し訳有りませんが、「年」の方も同様の不具合があるようなので、同じくShapeStyleを設定する必要があるようです。
私の方の環境ではこれらの対処で一通り問題なく動作しています。ご確認下さい。
Posted by Shion at 2011年12月12日 20:50
Shion 様
コメント ありがとうございます。
ご指摘通り、表示位置が適切でない場合、正常に表示されないのかもしれません。

「月」、「年」の両方の表示形式を ShapeStylePreset30 と設定しました。

ご親切に、どうもありがとうございました。

(サイト管理者 Yy)
Posted by Yy at 2011年12月13日 05:04
とても素敵なプログラムをご提供いただき有り難う御座います。

非常に便利ですので、Office2010を使用している知人に紹介したところ、
日付入力セルを作成し、そこにカーソルを合わせると、

Microsoft Visual Basic
実行時エラー 1004
PicturesクラスのInsertプロパティを取得できません。

とのエラーが出てしまうそうです。
私の環境ではエラーが発生しないのですが、何が問題なのでしょうか?

お手間をおかけ致しますがお教えいただけると幸いです。
Posted by Toshi at 2012年01月15日 20:13
Toshi さま
コメント ありがとうございます。
Microsoft Visual BasicのDLLのバージョンが古いのかもしれません。
または、特定のDLLが削除されいるのかもしれません。
Excel2010の修復で回復する可能性があると推測されます。
幸運を祈ります!

コメント感謝いたします。
(サイト管理者 Yy)
Posted by Yy at 2012年01月15日 21:31
コメントありがとうございます。
早速友人に伝えてOfficeの修復を行ってもらったのですが、同じエラーが出てしまうそうです。

その他に考えられる解決策がございましたらアドバイスいただければ幸いです。
Posted by Toshi at 2012年01月18日 23:29
Toshi さま
コメント ありがとうございます。
このページからダウンロードした popup_cal.xls には、次のステートメントを記述しています。
記述は、ThisWorkbook モジュール にあって、カレンダーアイコンをセルに挿入しています。

If Trim(Application.Version) = "14.0" Then
Set shp = oSheet.Pictures.Insert("C:\Program Files\Microsoft Office\Office14\FORMS\1041\APPTS.ICO")
End If
If Trim(Application.Version) = "12.0" Then
Set shp = oSheet.Pictures.Insert("C:\Program Files\Microsoft Office\Office12\FORMS\1041\APPTS.ICO")
End If
shp.Left = (5 + ActiveCell.Next.Left)
shp.Top = (2 + ActiveCell.Next.Top)

上記のExcelのバージョン "14" とは、EXCEL 2010 のことで、"12" とは、EXCEL 2007のことです。
カレンダーアイコンのファイル名は、APPTS.ICO です。
このファイルが無い場合、エラーとなってしまうことがあると思います。

フォルダー名がC:\Program Files\Microsoft Office\Office14\FORMS\1041
アイコンファイルの名称が APPTS.ICO を確認願います。

幸運を祈ります!
ありがとうございました。
(サイト管理者 Yy)
Posted by Yy at 2012年01月19日 05:38
できました!

友人のPCの中にFORMSフォルダが存在していなかったようです。
そんなこともあるのですね…

新たにフォルダを作成し,APPTS.ICOを格納したらエラーが発生せず,使用出来るようになりました。

お手数をおかけ致しましたが,本当にご丁寧にありがとうございました!

これからも便利に使わせていただきます!
Posted by Toshi at 2012年01月21日 13:38
Toshi さま
またがんばります。
ありがとうございました。
(サイト管理者 Yy)
Posted by Yy at 2012年01月21日 20:02
サイト管理者さま
すばらしい機能ありがとうございます。

問題なく使用できると思っていたのですが、
【シートの保護】を行いますと、【問題が発生したため、Microsoft Excelを終了します。】とエラーになってしまいます。
シートの保護の仕方が悪いのでしょうか?それとも、書式日付の設定にしたセル以外にもロック解除する必要があるのでしょうか?

なお、保護設定は【ロックされていないセル範囲の選択】にのみチェックを入れてあります。【ロックされたセル範囲の選択】と【オブジェクトの編集】は許可したくないです。

簡単な設定でしたらすみません。
よろしくお願いします。
Posted by AMAM at 2012年02月02日 16:16
AMAM 様
コメント ありがとうございます。
「書式日付を設定したセル」の「ひとつ右隣のセル」にカレンダー・アイコンを表示させています。
したがって、そのセルがロックを解除されていない場合、エラーが出ます。
【ロックされていないセル範囲の選択】にのみチェック状態でそのセルをロック解除すれば、エラーが消えると思われます。


幸運を祈ります。
コメントありがとうございました。
(サイト管理者 Yy)
Posted by Yy at 2012年02月02日 17:05
サイト管理者さま

さっそくの回答ありがとうございます。
「ひとつ右隣のセル」のロックを解除してもエラーとなってしまいます。
「PicturesクラスのInsertプロパティを取得できません」とメッセージがでまして、デバックすると
If Trim(Application.Version) = "14.0" Then
Set shp = oSheet.Pictures.Insert("C:\Program Files\Microsoft Office\Office14\FORMS\1041\APPTS.ICO")
End If
でエラーとなっているようです。
前出のとおり
C:\Program Files\Microsoft Office\Office14\FORMS\1041
\APPTS.ICO
はきちんとあることを確認済みですし、シートの保護を外せば正常に動作することも確認済みです。

お手数お掛けしますが、再度よろしくお願いします。
Posted by AMAM at 2012年02月03日 17:31
AMAM 様
コメント ありがとうございます。
図形がオブジェクトのため、シートを保護した場合、図形がコントロールできなくなることが分かりました。
このpopup_calマクロは、図形でカレンダーを描き出しているため、
カレンダー自体を表示できないことも分かりました。
大変申し訳ございません、シート保護には対応できません。

解決方法が判明した場合、サイトの更新でお知らせいたします。

mscal.ocxの流用をご提案致します。
コメント感謝致します。
(サイト管理者 Yy)
Posted by Yy at 2012年02月03日 20:33
サイト管理者さま

ご回答ありがとうございます。
【シートの保護】を使用しない方向に変更しようと思います。。
ありがとうございました。
Posted by AMAM at 2012年02月06日 16:58
はじめまして
使用させて頂きましたが、まさに探していた条件にぴったりで重宝しそうです。
ただ、popup_cal_2003では日付が全て同じ色で表示されてしまうのが残念です。
popcp_calのように「今日」が分かるように色を変えることはできないのでしょうか?
どうしてもOffice2003で使用しないといけないので、その点が残念です。
Posted by マロン at 2012年04月10日 13:10
マロン さま
コメント ありがとうございます。
「今日」が分かるように色の表示方法を修正いたしました。
修正したpopup_cal_2003.zipをアップロードしましたので使用願います。

コメント どうも、ありがとうございました。
(サイト管理者 Yy)
Posted by Yy at 2012年04月11日 10:29
サイト管理者様

早速の対応有り難うございました。
お陰様で非常に助かっております。
ありがたく使用させて頂きます。

Posted by マロン at 2012年04月16日 10:43
サイト管理者様

前出のMicrosoft Visual Basic
実行時エラー 1004
PicturesクラスのInsertプロパティを取得できません。
という現象が起こってしまいます。
そこで、C:\Program Files\Microsoft Office\Office14\FORMS\1041
\APPTS.ICO
を見てみたのですが、office14以下のフォルダとファイルが全くない状態でした。
そこで、フォルダは自分で作るとして、APPTS.ICOはどのようにして入手すればいいのでしょうか?
ご教授お願いいたします。
Posted by take at 2012年07月10日 21:20
take さま
コメント ありがとうございます。
http://blog.goo.ne.jp/shafact/e/1868dec7f4d86ca80d16bc1f3129eabb
上記のサイトでAPPTS.ICOファイルが入手可能です。

安全性に問題がある、と思われた場合、
このページのカレンダーアイコンの画像を取り出し、
APPTS.ICOファイルを作成することが考えられます。

コメント どうも、ありがとうございました。
(サイト管理者 Yy)
Posted by Yy at 2012年07月12日 10:01
サイト管理者様

お陰様で無事に動作するようになりました。
本当にありがとうございました。
非常に使いやすくなって本当にうれしい限りです。
ありがとうございました。
Posted by take at 2012年07月12日 20:51
曜日の並びを左から月曜から開始して、日曜で終了するように変更したいのですが、
このようにすることは可能でしょうか?

Posted by ともぞう at 2012年09月14日 23:47
take さま ともぞう さま
コメント ありがとうございます。
このサイトのカレンダーは、対応しておりません。
申し訳ございません。

月曜日で始まる、EXCEL ファイルを別ファイルとして作成しました。
http://excel-2010.seesaa.net/image/2_popup_cal.xls
上記のURLからダウンロードし、ご使用願います。

コメント どうも、ありがとうございました。
-------------------------------
(サイト管理者 Yy)
Posted by Yy at 2012年09月15日 06:59
サイト管理者様

迅速に対応いただきまして
ありがとうございました。
非常に使いやすくなっております。
Posted by ともぞう at 2012年09月15日 22:07
今気づいたことなのですが、
通常であれば、書式が日付になっているセルをクリックすると自動的にアイコンが
クリックしたセルの右側に表示されますが、同じ日付の書式設定でも、
例えば、「9月15日」という表示形式であれば、セルの右側にアイコンが正常に表示されます。
しかし、「9/15」などの表示形式の場合、
無反応となります。
これを修正したいのですが、
どの部分を修正すればよろしいのでしょうか?



Posted by ともぞう at 2012年09月15日 23:43
ともぞう さま
コメント ありがとうございます。
VBAの修正手順を次に示しました。
(1) 2_popup_cal.xlsを開きます。
(2) Alt+F11キーを押しVBAProject=>Microsoft Excel Object => This Workbookを開きます。
(3) VBAのテキストコードを確認します。

Private Sub Workbook_SheetSelectionChange
この関数の前半に次のステートメントがありますので、修正願います。
weekz = Array("yyyy/mm/dd", "yy/m/d", "yy/mm/dd", "d""日""", "dd""日""", "d/m/yyyy", "dd/mm/yyyy")
このArray()に含まれない書式は、動作いたしません。
お手数ですが、修正し、ご使用ねがいます。

(サイト管理者 Yy)
Posted by Yy at 2012年09月16日 05:04
サイト管理者様

ありがとうございます。
修正いたしました。
Posted by at 2012年09月16日 18:32
お世話になります。
カレンダーを気持ちよく使用させていただいております。ありがとうございます。
欲張って、曜日も入れたいのですがご指導お願い申し上げます。
Posted by 大矢 恵司 at 2013年02月11日 12:55
大矢 さま
コメントありがとうございます。
曜日を日本語に変更する方法を示しました。
【手順】
(1)excelカレンダーを「開き」Alt+F11キーを押します。
(2)するとコードウィンドウ(popup_cal)が開きます。
(3)上から13行目に次の1行があります。
   strWeek = Array("S", "M", "T", "W", "T", "F", "S")
(4)その1行を次のように修正します。
   strWeek = Array("日", "月", "火", "水", "木", "金", "土")
(5)excelを「保存」すれば修正完了です。
 何か問題が出た場合、コメントをお願いします。再度、対応いたします。

コメント どうも、ありがとうございました。
(サイト管理者 Yy)

Posted by Yy at 2013年02月11日 17:03
Yy様
有難うございます。
コードを変更させていただき日本語表示に変更
されました。
感謝いたします。


Posted by 大矢 恵司 at 2013年02月11日 22:15
お世話になります。
カレンダーを気持ちよく使用させていただいておりましたが、2013に変更いたしました。
excel2013で作成していただけませんでしょうか。
勝手なお願いですみません。
Posted by もへじ at 2013年02月28日 11:52
もへじ さま
コメント ありがとうございます。
excel 2013 の対応完了しました。
記事の popup calendar へアップロードいたしました。 再度ダウンロードして活用願います。

(サイト管理者 Yy)


Posted by Yy at 2013年02月28日 14:54
excel 2013 のご対応確認できました。
手放すことのできないカレンダーです。
感謝いたします。有り難うございました。



Posted by もへじ at 2013年02月28日 16:19
初めまして。
大変便利なカレンダー機能で驚いております。

このマクロを既存の日付入力している台帳エクセルに反映するには
どうすればよいのでしょうか。単に標準モジュールをコピーしただけでは
日付書式設定したセルの右にカレンダーアイコンが表示されません
(マクロ表示→gen_cal実行は動作します)。
それともダウンロードしたファイルを編集していくしかないのでしょうか。

初歩的かもしれませんがご教示ください。
よろしくお願い致します。
Posted by ぴぽぱ at 2013年05月24日 00:25
もへじ さま
回答が遅れ申し訳ありません。
>>単に標準モジュール
ワークブックモジュールも必要です。
手順は、次のとおりです。
(1)ALT + F11 キーを押します。
   コードウィンドウが表示されます。
(2)プロジェクトの中にある標準モジュールの1つ上のThisWorkbookメニューをクリックします。
(3)表示されたコードをコピー願います。
幸運を祈ります。
コメントありがとうございました。

サイト管理者(Yy)
Posted by Yy at 2013年05月26日 04:46
サイト管理者様
お忙しいところ返答ありがとうございます。
できました!
初歩的質問で恐縮でしたが助かりました。
これから活用させて頂きます。
ありがとうございました。
(宛名が少々違いましたが・・・^^;)

ぴぽぱ
Posted by ぴぽぱ at 2013年05月27日 22:32
有難うございます。
祝日の明示したかったのでコードを少し変更させていただきました。祝日登録シートも別途追加しました。

Sub disp_cal()
Dim shp As Shape

Application.ScreenUpdating = Flase
intS = DateSerial(intY, intM, 1)
ActiveSheet.Shapes("A_A年").DrawingObject.Caption = Format(intS, "yyyy")
ActiveSheet.Shapes("A_A年").ShapeStyle = msoShapeStylePreset30
ActiveSheet.Shapes("A_A月").DrawingObject.Caption = Format(intS, "m")
ActiveSheet.Shapes("A_A月").ShapeStyle = msoShapeStylePreset30
intSS = Weekday(intS, vbSunday)

intI = 0
intJ = 0
For Each mySP In ActiveSheet.Shapes
If InStr(1, mySP.Name, "A_AD") > 0 Then
intI = intI + 1
mySP.DrawingObject.Caption = ""
Set shp = mySP
shp.ShapeStyle = msoShapeStylePreset30
If intI >= intSS Then
intJ = intJ + 1
thisM = Month(DateSerial(intY, intM, intJ))
MM = Month(intS)
If thisM = MM Then
mySP.DrawingObject.Caption = Format(intJ, "00")
Set shp = mySP
If DateSerial(intY, intM, intJ) = ActiveCell.Value Or DateSerial(intY, intM, intJ) = DateSerial(Year(Now), Month(Now), Day(Now)) Then
shp.ShapeStyle = msoShapeStylePreset2
Else
If myHoliday(DateSerial(intY, intM, intJ)) Then
shp.ShapeStyle = msoShapeStylePreset31
Else
shp.ShapeStyle = msoShapeStylePreset30
End If
End If
End If
End If
End If
Next
Application.ScreenUpdating = True
End Sub

Function myHoliday(ByRef pDay) As Boolean
Worksheets("祝日").Activate
endRow = ActiveSheet.Range("A3").End(xlDown).Row
myHoliday = False
For iRow = 3 To endRow
If ActiveSheet.Cells(iRow, 1).Value = pDay Then myHoliday = True
Next iRow
Worksheets("sheet1").Activate
End Function
Posted by 大川 at 2013年09月09日 10:35
大川様 
コメント ありがとうございます。
正常に「祝日」が強調され、見やすくなりました。
 なお、forループの外で「祝日」を配列に格納し、
forループの中で作成した配列を参照すると、
スピードアップできるかも知れません。
どうも コメント・リストをありがとうございました。
サイト管理者(Yy)
Posted by Yy at 2013年09月10日 10:24
素晴らしいソフトですね。2003で使っているのですが,不具合が2つ。
1 カレンダーのアイコンが出てこない。
  APPTS.ICOという文字がある,白い紙のようなアイコンが出てくる。

2.日付はカレンダーから入寮できるのですが,再度同じセルを選択すると,実行時エラーが出る。

ちなみに
Set shp = oSheet.OLEObjects.Add(Filename:="C:\Program Files\Microsoft Office\OFFICE11\FORMS\1041\APPTS.ICO", Link

初心者なのでわからないことばかりです。すいません。おてやわからにお願いします。
Posted by やすのり at 2013年12月01日 23:29
先ほどの質問ですが,エラーは回避できました。WIN7で2003を使っているため,マクロのパスが 一部違っていたようです。
(カレンダーのアイコンが出てきませんが,使用には問題ありません。)
Posted by やすのり at 2013年12月01日 23:59
やすのり さま
コメント ありがとうございます。
センスが大変良い方、と思いました。

コメント どうも、ありがとうございました。
ーーー サイト管理者(Yy) −−−

Posted by Yy at 2013年12月02日 04:25
はじめまして。
先日職場のパソコンの入れ替えがあり、excel2010が導入されましたが、カレンダー入力ができず、オロオロしてしまいましたが、このページにたどり着き、現在カレンダー入力が復活でき、職場で複数の者が使用しているファイルだったので、みんな大変助かっております。
無料で、デザインも良く、非常に感謝いたします。

有り難うございました。
Posted by Hy at 2014年02月26日 19:30
Hy 様
コメントありがとうございます。
excel2010は、WindowsXpのサポート終了など
話題が出ているMicrosoftの製品です。
もっと良いカレンダー出来たら良いと考えています。
コメント どうも、ありがとうございました。
ーーーサイト管理者(Yy)−−−
Posted by Yy at 2014年02月26日 19:57
サイト管理者様

はじめまして
すごく使いやすいカレンダーありがとうございます。
大変貴重に使わせて頂いております。

1点ご教授ください。
以前の問い合わせで、日付の書式設定によっては、
セルの右側にアイコンが正常に表示されない場合に、
weekz = Array()に表示させたい日付形式を追記することが
記載されていたので、いろいろ試してみましたが、
どうしてもうまくできませんでした。
下記の書式で表示したい場合には、どうすればいいでしょうか?

◆カレンダーの種類
 和暦
◆種類
 H26.3.1

よろしくお願いいたします。
Posted by TTy at 2014年03月01日 17:20
TTy さま
コメントありがとうございます。
和歴に対応していませんでした。
以前にアップロードした2_popup_cal.xlsを更新しました。
(by ともぞう at 2012年09月15日 23:43)
動作確認を完了しております。
また、問題等ありましたらコメントください。
どうも、ありがとうございました。
サイト管理者(Yy)


Posted by Yy at 2014年03月02日 10:52
サイト管理者 様

早速の対応有り難うございます。
大切に使わせて頂きます。
Posted by TTy at 2014年03月02日 17:46
はじめまして
いつも利用させていただいております。

とても重宝しているのですが、使用していたところエクセル行の2500行目あたりからマクロがオーバーフローします。
内容は以下の通りです。
実行時エラー6

いろいろと試してみましたが私の知識では解決できませんでした。
解決策をよろしくお願いいたします。
Posted by 重宝してます。 at 2014年03月07日 14:50
はじめまして
いつも利用させていただいております。

とても重宝しているのですが、
使用せているとエクセル行の2500行目あたりからマクロが
オーバーフローします。
内容は以下の通りです。

環境:Win7、Office2010
実行時エラー6

いろいろ試して見ましたが私の知識では解決出来ませんでした。
解決策をお願いします。
Posted by 重宝しています at 2014年03月07日 15:00
重宝しています さま
コメント ありがとうございます。
全ての整数を As Integer で宣言しておりました。
次のように修正し、popup_calendar.zipを更新して
アップロードし直しました。

As Long 

ダウンロードしてご使用ください。
コメント どうも、ありがとうございました。
サイト管理者(Yy)

Posted by Yy at 2014年03月07日 17:09
早速の回答ありがとうございます。

ダウンロードして使わせて頂きます。

ありがとうございます。
Posted by 重宝しています。 at 2014年03月08日 01:10
サイト管理者様
 何かないかと探したところこちらの日付入力カレンダーに至りました。
 3月にして入力し下のセルに移ったときカレンダーが4月にもどってしまいます。一手間だけのことですが、月を固定はできないのでしょうか。
Posted by nob t at 2014年04月10日 21:57
nob t さま
コメント ありがとうございます。
 できれば、WindowsなどのOSで3月に固定し、ご使用願います。
インターネット時刻に自動的に合わされないように設定すると、3月に固定できます。
理由は、次の通りです。
 このカレンダーは、図形を描き直すため、処理時間がかかっているためです。
したがって、処理の追加をしないようにし、スピードアップして来ました。

不便をおかけしますが、ご了承お願いします。
コメントどうも、ありがとうございました。
サイト管理者 (Yy)
Posted by Yy at 2014年04月11日 06:21
サイト管理者様

早速のご回答ありがとうございました。素人にもわかりやすい丁寧な回答で感謝です。早速試してみます。
Posted by nob t at 2014年04月11日 09:25
サイト管理者様


初めまして、高と申します。
早速ダウンロードして、使わせて頂いたのですが、カレンダーアイコンが表示せず、カレンダーはただ「画像」見たいみたいになっています。
「画像」をクリックと、「マクロ`A-Aclick`を実行できません。このブックでマクロが使用でないか、またはすべてのマクロが無効になっている可能性があります。

VBA初心者ですので、やり方は間違ったかもしれません。やり方は画像をつけていただき、教えてもらえないでしょうか?
大変お忙しい中、お手数をかけします。
よろしくお願いします。

パソコン環境は:
Windows 7 pro Service pack1
Office 2010





Posted by 高 at 2014年05月23日 22:40
高 さま
コメント ありがとうございます。
原因は、アイコンファイルの保存場所かもしれません。
C:\Program Files\Microsoft Office\Office14\FORMS\1041\APPTS.ICO
上記のICOファイルを確認願います。
OfficeのApplication.Versionの番号が14を再確認願います。
ファイルまたはフォルダーを開く方法を次に示しました。

1.開くファイルまたはフォルダーをクリックします。

2.ファイルまたはフォルダーをダブルクリックして開きます。

画像は、「ファイルやフォルダーを開いてみよう」で検索願います。
イメージ入りで説明されています。

コメントありがとうございました。
サイト管理者(Yy)


Posted by Yy at 2014年05月24日 05:23
素晴らしいカレンダーを公開されてますね (^^)/
私にゃとっても。。。
で、本題ですがOSが64bit ですと
Private Sub disp_calendar_icon() の中
記載されているバージョンチェックだけでは不十分です。
Set shp = oSheet.Pictures.Insert(Application.Path & "\FORMS\1041\APPTS.ICO")
としてあげれば良いのでは?

勝手な言いぐさですが、コメント入力欄が一番下なので
分かりにくかったです。orz
Posted by 寄り道 at 2014年06月11日 10:16
寄り道 さま
コメント ありがとうございます。
Application.Path プロパティによりICOファイルを安全に特定できました。

ご指摘ありがとうございます。
Sub内部のステートメントを修正しました。
popup_cal.zipファイルを更新しアップロードしました。
コメント どうも、ありがとうございました。

※※※
これまでにICOファイルについて、コメントをしてくださった皆さん
申し訳ございません、上記のとおりです。
ご理解、いただけますよう、お願い致します。
サイト管理者 (Yy)
Posted by Yy at 2014年06月12日 07:35
会社で使っているのでフリーソフトが入れられず、困っていたところこちらに出会いました。
カレンダーコントロールはいつも重宝させてもらっています。ありがとうございます。

excel2010で利用しておりますが、
ファイルを共有にすると
Microsoft Visual Basic
実行時エラー 1004
PicturesクラスのInsertプロパティを取得できません。
が表示されます。

共有にしないで利用すると問題なく利用できるのですが、共有で使いたく解決策をお教え頂けますでしょうか。
どうぞよろしくお願い致します。
Posted by 村井 at 2014年06月20日 18:25
村井 様

コメントありがとうございます。

HP Technology at Work
http://h30458.www3.hp.com/jp/ja/smb/1311294.html

上記のサイトに「使えなくなる機能の例」があり、参考になるかも知れません。
******(内容を引用しました。)
Excel では、共有ブックで一部の機能が自動的に無効になることに注意してください。
ブックを共有すると複数のユーザーが同時に同じファイル上で作業できるようになるため、
ブックの簡素化と混乱回避を目的としてそのような措置が取られています。
たとえば共有ブックでは、セルの結合、条件付き書式、
画像またはグラフの挿入は許可されず、
一部の書式設定の変更は[変更履歴の記録]機能の追跡の対象外です。

共有ブックの所有者は、共有ブックからユーザーを削除したり、
矛盾する変更が加えられた場合は矛盾を解消したりすることによって、
ブックを管理することができます。
さらに、すべての変更が終わった時点でブックの共有を停止することができます。
******(引用は、ここまで)

 なお、「ファイルに対して信頼できる場所を作成、削除、変更する」EXCEL操作があります。
この操作でICOファイルを信頼できる、としてEXCELに設定できます。
共有ファイルが信頼できれば、EXECEL VBAマクロが動作する場合もあるようです。

共有環境の詳細が不明のため、まず、上記の解決策をご提案いたします。

幸運を祈ります。
コメントありがとうございました。
サイト管理者(Yy)
Posted by Yy at 2014年06月23日 11:55
管理者様

コメント本当にありがとうございます。
ご指摘頂いた方法を以下のようにICOファイル場所、エクセルを保存する場所を手順通り試してみましたが同様の症状がでてしまいました。追加ご教授頂けることありましたら何卒お願いします。

http://office.microsoft.com/ja-jp/excel-help/HA010031999.aspx#BM1

共有ブックはデスクトップ上に保存しており
windows7を使っています。

すいません。あまり詳しくなく。

Posted by 村井 at 2014年06月23日 19:13
村井 様
コメントありがとうございます。
共有を外す、つまり使用中のPC上のEXCELブックとして動作させ、
入力したカレンダーの日付をテキストとして、
共有ファイルへコピーすることができるかもしれません。

この場合、共有を外すと問題が出る場合もありますので、
EXCEL上で操作が継続できなくなることもあり得ます。

新しい解決方法をご提案します。
popup_cal.xlsには、ショートカットキーが設定してあります。
Ctrl + Shift + G によりカレンダーを表示できます。

エラー1004がでた後、メッセージを閉じ、上記のショートカットを操作します。

なお、エラーメッセージを表示させないpopup_cal.xlsを次のリンクよりダウンロードできます。
ご利用願います。
http://excel-2010.seesaa.net/image/popup_calG.zip

コメントありがとうございました。
サイト管理者(Yy)
Posted by Yy at 2014年06月24日 10:01
村井 様

カレンダーアイコンファイルを使用しないpopup_calGを作成しました。
リンクに問題があり申し訳ございませんでした。

http://excel-2010.seesaa.net/image/popup_calG.zip

上記のリンクからダウンロードできます。
失礼いたしました。
サイト管理者(Yy)
Posted by Yy at 2014年06月27日 17:56
 とても便利に使わせていただいてます。
 マクロは初心者ながら少しいじりました。
 台帳と言う名のシートのB列にユーザー定義でつまり日だけを表示し、A列にはB列から月を表示するようにしてます。
 ThisWorkbook の
weekz = Array("yyyy/mm/dd", "yy/m/d", "yy/mm/dd", "d""日""", "dd""日""", "d/m/yyyy", "dd/mm/yyyy") の中に "d" という項目を増やし、使っていました。
 他のブックでも標準モジュールはインストール、ThisWorkbook はコピーして使っていました。

 何をしたのか、エラーが出て使えなくなりました。
「コンパイルエラー プロジェクトまたはライブラリが見つかりません」となります。
 その隣のセルに移っても同じエラーが出ます。
 ThisWorkbook を消してマクロで実行しようとしても同じエラーになります。
 いろいろ調べてみましたが、限界です。
 これからも使い続けていきたいのでここでしっかり理解して対応したいと思い、コメントさせていただきました。
 お力をお貸しくださいませ。

 なお、まだ使えるものはあります。
 一応、popup_calG をダウンロードして使ってます。
 余談ですが、ただの□のものとカレンダーのアイコンが出るものがあります。
 いったい何が違うのか。
 本当に困っています。
Posted by saga at 2014年10月15日 16:03
Saga さま
コメントありがとうございます。
キーワード「EXCEL コンパイルエラー 
プロジェクトまたはライブラリが見つかりません  Microsoft 」
上記のキーワードでネット検索すると、解決策が分かるかも知れません。
例えば、検索結果より分かることは、次の手順です。

(1)VBAコードウィンドウをALT + F11キーを押して開きます。
(2)メニュー「ツール」→「参照設定」を選択し、
参照可能なライブラリを開きます。
(3)参照不可がチェックされていた場合、チェックを外します。
その結果、回復するようです。

なお、カレンダーアイコンが表示されるBOOKは、
EXCELのインストール時APPTS.ICOファイルが規定フォルダに出来るためです。
単に四角形□が表示されるBOOKは、そのファイルを使用しない目的があります。

このような問題は、EXCELの動作に影響するPCの使用環境が原因で発生するようです。
VBAに問題がなくても、規定フォルダ名称を変更又はフォルダを移動した場合や、
VBA開発環境とVBA使用環境が異なるケースでも問題がでるようです。
つまり、参照設定後、参照先のフォルダを移動させ、EXCELが参照不可となった場合
などに問題となるようです。
なお、こちらで設定している開発環境での参照先は、次の5つです。
(1)Visual Basic for Applications
(2)Microsoft Excel 12.0 Object Library
(3)OLE Automation
(4)Microsoft Office 12.0 Object Library
(5)Microsoft Forms 12.0 Object Library

コメント どうも、ありがとうございました。
サイト管理者(Yy)

Posted by Yy at 2014年10月16日 04:55
管理者さま、

ありがとうございます。「参照設定」にて不可を見つけて削除したら動きました。
昨日は、やろうとしてもツールの「参照不可」がクリックできなかったんです。
別のカレンダーのをアドインを入れていたのが不可になってました。ずっと使わなかったので削除しようかな、と思っていたんですが。
いろいろと関係してくるので初心者は、どうして、とパニック何度も起こしてます。

他のもチェックしてみます。
本当にありがとうございます。
これからも使わせていただきます(一度使うとやはりこの便利さは手放せません〜)
Posted by saga at 2014年10月16日 11:33
管理者様、こんにちは。
素晴らしいカレンダ機能ですね。

ただ、当方の環境ではうまく動作しないケースがあるようです。セル書式が"yyyy/mm/dd"としたセルを一度触ると、カレンダがそのまま残ってしまったり、呼び出しボタン?がクリックするたびに増殖し始めます。Excel2010/Windows7(32bit)環境です。何か確認するポイントでも教えていただけると嬉しいです。
Posted by san at 2014年11月17日 21:01
san 様
コメントありがとうございます。

1.イベントを受け付けない設定
Application.EnableEvents = False
のVBAステートメントが実行された場合
この場合、図形が削除されません。
上記のステートメントがあるか否か確認願います。
 理由は、Workbook_SheetSelectionChange
ステートメントをThis Workbookで記述し、
選択が変化したとき、図形を削除しているからです。

2.複数のシート使用している場合
この場合、選択の変更イベントを正常に
検出しないときがあります。
2つ目のシートで発生したイベントと
1つ目のシートで生じたイベントを区別できないからです。
この場合、Ctrl+Shift+Gのショートカットキーを使用し
カレンダーの再表示で解決するかも知れません。
Ctrl + Shift + G は、カレンダー表示のショートカットです。

コメント どうも、ありがとうございました。
サイト管理者(Yy)



Posted by Yy at 2014年11月18日 10:40
管理者様、はじめまして。
このようなVBAを作成された事、非常にすばらしく思います。
私もご質問させていただきたいのですが、上記でsan様もご指摘されておりますが、当方でも同様の現象が発生しております。
また「yyyy/mm/dd」以外にも「ggge年m月d日」でも同様のことが発生します。管理者さまがご指摘されている内容を確認したのですが、「Application.EnableEvents」は「ture」でしたし、複数シートも使用しておりません。(ダウンロードしたファイルをそのまま書式設定の変更をしただけですので・・・)
ただ、気になる点としては、書式変更後の1回目の他セルのクリック時は正常に動作しているようなのですが、2回目以降、他セルをクリックをするとカレンダーが残ったり、呼出ボタンが増殖するようです。それで、2回目の他セルのクリックを実施した際の「ActiveSheet.Shapes.Count」の値を確認すると、画面上にボタン群が1つしかないにも関わらす、「2」と表示されます。このことが何か原因となっているのでしょうか?
Posted by MUNE at 2014年11月18日 12:38
連投ですいません。
上記で質問させて頂いた件について、自己解決しましたのでご報告させて頂きます。
セルをクリックした際に「Workbook_SheetSelectionChange」ルーチンが実行され、クリックされたセルの書式と「weekz = Array(〜)」の「〜」で指定されている書式が合致した場合(ようするにクリックしたセルが日付型かどうか)、カレンダー呼出ボタンを表示する仕組みになっているものと思います。
通常の日付型書式の場合は正常に処理されますが、書式が「yyyy/mm/dd」の場合だと、
「weekz」で指定されている「yyyy/mm/dd」と「yy/mm/dd」の両方に条件が合致するため(たぶん部分一致になっているものと思われます。)2つボタンを作成するみたいです。セルをクリックする毎にボタンが重複して作成されるため、san様のご指摘の通り、ボタンが重複して作成されたり、カレンダーが消えなかったりしたものと思われます。
なので、「weekz = Array(〜)」の1行下の「For Each wz In weekz」のループで条件を満たした場合の処理後にそのままループするのではなく、処理後ループから抜けるか、
「weekz = Array(〜)」の「〜」の部分について条件が重複しないようなものに変更する必要があると思います。(私は、後述の手法をとりました。)
お役に立てれば幸いです。
管理者さまも、お体にお気をつけてがんばってください。
Posted by MUNE at 2014年11月18日 15:42
MUNE 様
コメントありがとうございます。

ダウンロードするExcelBookは、配列のインデックスの初期値を 0 としています。
初期値を1とした場合でも処理できるように修正しました。

新しいBookをブログへアップしましたので
ご利用願います。

コメントに対し、心より感謝いたします。
サイト管理者(Yy)




Posted by Yy at 2014年11月18日 16:11
管理者様

上記の高さん(Posted by 高 at 2014年05月23日 22:40)と同じ症状で苦しんでいます。
管理者様の言うとおりにC:\Program Files\Microsoft Office\Office14\FORMS\1041\APPTS.ICOを探しましたが見当たりません。いかがすればよろしいでしょうか?
A_AClickを実行したところ実行時エラー13と出て、型が一致しませんとでます。
マクロについては全く無知です。
あと、マクロを有効にしても、何度もマクロを有効にしてくださいというエラーになります。
初心者です。すみませんが、よろしくお願いします。
ただ、ダウンロードしたファイルでは、カレンダー機能はうまく働いています。
Posted by hiraper at 2015年02月21日 21:58
hiraper さま
コメント ありがとうございます。
【1】
APPST.ICOファイルが不明の場合
(1)ネットワークでEXCELを使用している場合
(2)EXCELシステムのインストール先を変更した場合
上記の場合、ICOファイルが見当たらないことがあります。
その場合、次の方法でうまくいくかもしれません。
カレンダーアイコンファイルを使用しないpopup_calGを作成しました。

http://excel-2010.seesaa.net/image/popup_calG.zip

上記のリンクからダウンロードできます。
カレンダー表示は、ショートカット Ctrl + Shift + gを使用します。
Ctrl+Shift+Gキーを押すと簡単に実行できます。

【2】
型が一致しない場合
日付の入力に数字以外の文字が入力されている可能性があります。
また、日付の入力セルの型が「日付」以外の
可能性もあります。
ご確認願います。

【3】
マクロの有効に「毎回確認」する、とうい選択があります。
「Excel のマクロのセキュリティ設定を変更する」
上記のメッセージをヘルプに入力すると説明が出てきます。
不明の場合、検索エンジンにその文字列を入力すると、ヒットします。

【4】
ICOファイルの問題は、スマホやタブレットなど
使用環境が世界のネットワーク上に広がったので
その影響により、ICOファイルがイメージのファイルとして採用されなくなる傾向があると思われます。

上記のダウンロードファイルをテストして頂けないでしょうか?

コメント どうも、ありがとうございました。

サイト管理者(Yy)

Posted by Yy at 2015年02月22日 18:29
管理者様

素晴らしいカレンダーをご提供頂きまして感謝しています。

カレンダーはシート上で作成されたとの事ですが、個々のオブジェクト(矩形)の色を任意に変更する方法をご教授願います。併せて、先月/来月に環境依存文字や
西暦や月にテキストを加えたいのでご教授願います。
Posted by 樋口 at 2015年03月06日 13:45
樋口 さま
コメント どうもありがとうございます。

処理の概要は、次の通りです。
マクロが分かる人を前提に、簡単に説明いたしました。

(1)色を任意に変更する方法
Sub disp_cal()内の
 shp.ShapeStyle = msoShapeStylePreset30(この30を変更します)
 Else
 shp.ShapeStyle = msoShapeStylePreset2(この2を変更します)

(2)先月/来月に環境依存文字を使用する場合のステートメント
Sub gen_cal()内の
   Set shp = ActiveSheet.Shapes.AddShape(1, intBL_S, intBT_S, intW * 2, intH)
   shp.Name = ”A_A先月”
   shp.OnAction = ”pre_c”
   shp.TextFrame.Characters.Text = ”<<先月” (ここに文字を入力します)
   shp.ShapeStyle = msoShapeStylePreset30

   Set shp = ActiveSheet.Shapes.AddShape(1, intBL_S + intW * 5, intBT_S, intW * 2, intH)
   shp.Name = ”A_A来月”
   shp.OnAction = ”next_c”
   shp.TextFrame.Characters.Text = ”来月>>” (ここに文字を入力します)
   shp.ShapeStyle = msoShapeStylePreset30

(3)西暦や月にテキストを加えたい
Excelの強力な日付処理を活用できなくなるため
対応できません。
誠に、残念です。

コメント どうも、ありがとうございました。
サイト管理者(Yy)
Posted by Yy at 2015年03月06日 17:58
管理者様

ご教授頂いた通りに行うと、セルの罫線の色のみ変わってしまいます。

1.先月、西暦、月、来月のセルの色を
ColorIndexプロパティ値1にしたい。
2.曜日のSのセルをColorIndexプロパティ値3にしたい。
3.曜日のM,T,W,T,F,Sのセルの色をColorIndexプロパティ値11にしたい。
4.日曜日以外の日にちのセルを全てColorIndexプロパティ値46にしたい。
5.日曜日のテキストの色をColorIndexプロパティ値3にしたい。

マクロに関して素人ですのでお手数をお掛けし申し訳ございませんが、ご教授のほど宜しくお願い致します。

Posted by SH at 2015年03月09日 09:30
SH さま
コメント ありがとうございます。
このサイトの VBA ページを参照願います。
ページの後半に、セルのスタイルを決める方法が説明されています。

ColorIndexプロパティについては、未経験です。
他の専門家にご教授願いたく、お願いいたします。

コメント どうも、ありがとうございました。

サイト管理者(Yy)
Posted by Yy at 2015年03月09日 20:45
・初めてお便りいたします。78歳のVBA超初心者です。

・非常に素晴らしい日付け入力のマクロを発見しましたので、早速使わせて頂こうと思いまして、ダウンロードしたのですが…。

・実は、私は、エクセル作業の前段として、ユーザーホームのTextBox1に日付を自動的に入力しようと考えていましたが、ダウンロードによって、別にBookも開いてカレンダーも表示され日付も入力できるのですが、TextBox1でそれを実現するためには、どのようにするとよろしいのでしようか。

・ご多忙のところ、誠に恐縮でございますが、ご教示頂けましたら幸いに存じます。
Posted by 福田 武志 at 2015年04月08日 15:12
福田 武志 様
コメント ありがとうございます。
次の手順で実現できると考えます。
(1)表示したいシートの名前にマウスのカーソルを置き、右ボタンを押します。
(2)メニューが表示されますので、「コードの表示」を選択します。
(3)コードウインドウが表示されますので、横に長い(General)と書かれた窓の右側の▼ボタンを押します。
(4)メニューが表示されますので、Worksheetを選択します。
(5)次のSubプログラブができます。
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
(6)その第一行目に、次を入力します。
ActiveSheet.TextBox1.Text = ActiveCell.Value
(7)TextBox1に現在選ばれているセルの値が自動的に入力されます。

幸運を祈ります。
コメント どうも、ありがとうございました。
サイト管理者(Yy)
Posted by Yy at 2015年04月09日 17:54
1) 日付をクリックすると、選択した「セ ル」に日付を入力させます。
2) 自動的にカレン ダーがワークシートから削除されず、消えません。

どうしたら消えるのでしょうか。
sheet1,sheet2は消えます。sheet3が消えません。どうかご教示お願い致します。

YM
Posted by YM at 2015年04月28日 23:45
YM さま
コメント ありがとうございます。

セルの書式設定において、「日付」と設定されていない場合
ご質問の現象が生じることがあります。

sheet3のセルを日付に「書式設定」し、再度試みるよう
お願い致します。

コメント どうも、ありがとうございました。
サイト管理者(Yy)
Posted by Yy at 2015年05月04日 09:54
カレンダー入力を利用したいと悪戦苦闘しましたが、こんな素晴らしいモノに行き当たりました。このクオリティの高さ、使い勝手正に望んでいたものでした。
通常利用では問題ないのですが、該当ファイルを"共有"設定し、保存すると、下記のエラーが発生します。

「実行時エラー"1004"
picturesクラスのinsertメソッドが失敗しました」

共有モードでは使えない仕様でしょうか?
共有モードでなければ正常に動作します。

何か思い当たる要因が有りましたらお願いします。
Posted by おっぺまん at 2016年02月09日 20:50
おっぺまん さん
コメントありがとうございます。

村井 at 2014年06月20日

上記のコメントを参照願います。

コメント どうもありがとうございました。
サイト管理者(Yy)
Posted by Yy at 2016年02月10日 06:50
村井様、管理人様
2014/6/20の書き込み拝見しました。
コメントありがとうございます。
試しにオリジナルのファイル「popup_cal.xls」「popup_calG.xls」をローカルにコピーし、共有設定したところ、前者は前回記載した"1004エラー" 後者はまた別のエラーが発現し、正常動作しませんでした。何か回避策があるのかもしれませんが、当座、日付は直接入力することとします。

Posted by おっぺまん at 2016年02月17日 10:25
便利なプログラムを公開していただきありがとうございます。
入力作業に重宝しています。

質問なのですが、カレンダーコントロールが含まれているセルを先頭に複数選択した後に、オートフィル機能でコピーするとカレンダーコントロールが停止してしまします。

なにか回避策はありますでしょうか。
Posted by natsu at 2016年04月04日 17:32
natsu さま

コメントありがとうございます。
コピーする領域の外側のセルをクリックし、
コピー領域の外へカレンダーアイコンを移動させます。

カレンダーアイコンが移動しましたので、
カレンダーアイコンが表示されていないセルを複数選択し、
オートフィル機能を使用してください。

このようにすると、カレンダーアイコンが複数発生しませんので、
正常に機能します。

コメント どうも、ありがとうございました。
サイト管理者 (Yy)




Posted by Yy at 2016年04月04日 18:39
サイト管理者(Yy)様
 
はじめてコメントさせていただきます。とても素晴らしいカレンダーを見つけて感動しています。
現在、顧客名簿の作成をしており、日付入力支援のフリーのカレンダーを探しておりましたところ、このサイトに出会いました。(感激で、涙しました)

現在、顧客の台帳作成にあたり、とても重宝しており感謝申し上げます。ありがとうございます。

そこで、日付表示形式のセルが選択されると同時に、カレンダーが表示されるようにマクロを変換しておりますが、どうしてもできませんでした。

大変、恐縮に存じますが、このようなことが、可能なのか、どうか、ご教示いただければとても助かります。お忙しい中、申し訳ありません。
よろしくお願い申し上げます。
Posted by 東條一郎 at 2017年02月01日 16:14
東條様
コメントありがとうございます。

このカレンダーVBAは、
Excelの操作手順に従った設計となております。

(1)どのセルに
(2)カレンダー表示

上記の操作を明確に分け、操作するよう
設計しました。
どうぞ、ご理解お願いいたします。

サイト管理者(Yy)

Posted by Yy at 2017年02月03日 06:20
サイト管理者(Yy)様

早速のご返答ありがとうございます。
大変すばらしいソフトありがとうございます。

これからもよりよいものに改良されていくことをご期待しながら、このサイトを楽しみに拝見させていただきます。
Posted by 東條一郎 at 2017年02月03日 21:46
別の列・行にこのカレンダーを組み込みたいのですが、どのようにすればよいでしょうか(例えばE12行〜E39など)。VBA初心者にてご迷惑おかけしますが、ご教示くださいますと幸いです。
Posted by TT at 2017年04月18日 11:04
TT さま
コメントありがとうございます。

(1)まず、E12・・・E39のセルを選択します。
(2)そのセルの位置で右クリック
(3)「セルの書式設定」メニューで「日付」を選択します。
(4)E12〜E39の中から一つのセルを選択すると、カレンダーアイコンがF列に表示されます。

コメント どうもありがとうございました。
サイト管理者(Yy)
Posted by Yy at 2017年04月19日 05:55
サイト管理者(Yy)様

返事が遅くなり申し訳ございません。
教えて頂いた通りにすると解決いたしました。とても助かります、ありがとうございます!
Posted by TT at 2017年05月15日 14:00
いろんなことを便利にしようと奮闘して,ここにたどり着きました。すごく便利で,すごくカワイイので,使用させてもらっています。
ひとつ聞きたいのですが,日付のセルを選択するとアイコンが出ますよね。その状態で印刷をすると,オブジェクトの印刷をするにチェックが入っているので,アイコンが印刷されてしまいます。他のセルを選択すればいい話なのですが,その解消方法はありますでしょうか?
Posted by mino at 2017年08月04日 09:43
mino さま コメントありがとうございます。

確かに、オブジェクトの印刷にチェックが入っているため
アイコンが印刷されます。

例えば、次の方法でチェックを外せます。
(1)まず、印刷したくないオブジェクト(アイコン)を右クリック
(2)「サイズとプロパティ」を選択
(3)「プロパティ」メニューから 「オブジェクトを印刷する」のチェックをはずす

印刷する場合、上記の設定をするとアイコンは印刷されません。

まず、この方法をお試しください。

コメントありがとうごございました。

サイト管理者(Yy)
Posted by Yy at 2017年08月04日 17:48
早速のお返事ありがとうございます。言葉が足りませんで申し訳ありません。上記の件は試したのです。チェックを外して上書きをしても,初期化されてしまうみたいで,なぜか印刷されてしまいます。管理者様のご無理の無いように解消方法を考えてもらえればと,コメントを書いてしまいました。これだけのシステムなのにまだ他力本願で申し訳ありません。
Posted by mino at 2017年08月04日 19:01

次の手順でVBAステートメントを1行追加願います。

(1)カレンダーExcelBookの現在のシートタブ上でマウスの右クリック
(2)「コードの表示」をクリック
(3)左上のMicrosoftExcelObjectsの4番目、ThisWorkbookをダブルクリック
Private Sub disp_calendar_icon()
の後半部分
Shp. eft = (5 + ActiveCell.Next.Left)
shp. Top = (2 + ActiveCell.Next.Top)
shp. Name = "A_AIcon"
shp. OnAction = "gen_cal"
shp. PrintObject = msoFalse  ←を追加します。

ExcelBookをSave(保存)し、カレンダーアイコンの印刷チェックを外します。

コメントどうもありがとうございました。

サイト管理者(Yy)
Posted by Yy at 2017年08月05日 08:48

すばらしい!!!本当に感謝です。文句なしの出来になりました。本当にありがとうございました。
あまり頼らないようにしたいのですが,また何かあったときはよろしくお願いします。

Posted by mino at 2017年08月05日 09:15
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。