- ベストアンサー
カレンダーコントロールからセルとシート名に日付を入力
エクセルVBAコードについてですが、マクロを実行すると、カレンダーコントロールが表示され、選択したカレンダーの日付をクリックすると、任意に指定したセルとシート名にその日付を表示させたいのですが、どのようなコードを書けばよいのか教えてください(><) ちなみに、今はインプットボックスから日付を入力する方法をとっていますが、都度「2008年○月○日」と入力しなくてはいけませんので、効率が悪く困っています。 どうぞ宜しくお願い致します。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
カレンダーコントロールの種類によるのかな? カレンダーコントロール色々 http://www.h3.dion.ne.jp/~sakatsu/Excel_Tips06.htm カレンダーコントロール色々(MSCAL 利用例) http://www.h3.dion.ne.jp/~sakatsu/Excel_Tips06_2.htm ご参考になれば。
その他の回答 (2)
- hige_082
- ベストアンサー率50% (379/747)
もう少し、勉強されてからの方がいいのでは? 厳しいことを言うようですが、NO.1、NO.2の回答者さんの回答で分からなければ 基本も分かってないのでは、と疑ってしまいます 「Sub 新規シートの挿入()」を自分で考えたのであれば、分かると思いますし 何かを参考にされたのであれば、参考にした参考書やホームページをもう一度よく読んで理解したほうがよいと思います アドバイスとしては With ~ End With をカレンダーコントロールのクリックイベントで 処理をすればよいと思います With ですが、使い方が間違っています 試しに削除(コメントアウト)してみてください 偉そうな事書きましたが、私も毎日ここで勉強させて貰っています お互いがんばりましょう
お礼
ご回答有難うございます。 ご指摘通り私はVBAに触れてからまだ3日目です。基本もわからぬまま色々な資料を寄せ集めてなんとか「シートの挿入」と「インプットボックス」のマクロを作動することができたのですが、それ以上のことを望むにはまだ早すぎどころか、最初に基本を学ぶべきでした。 VBAを早く自分のものにできるよう、頑張って勉強していきたいと思います。
- keirika
- ベストアンサー率42% (279/658)
カレンダーコントロールのクリックイベントを使用します。 Private Sub Calendar1_Click() Range("a1") = Calendar1.Value End Sub
補足
早速ご回答して頂きありがとうございます。 教えて頂いたコードで、セルA1にカレンダーから日付を入力することができたのですが、あわせてシート名もセルA1と同じ名前にしたいのです。 現在私は下記のコードのとおり、元となるシート(原紙)をコピーすると、インプットボックスが表示され、その中に「2008年8月1日と入力すると、セルとシート名が「2008年8月1日」となるコードを書いてありますが、インプットボックスのコードの代わりに、カレンダーコントロールから表示するには、どのようにコードを変えたらよいでしょうか。。 宜しくお願い致します。 Sub 新規シートの挿入() Sheets("原紙").Select Worksheets("原紙").Copy after:=Worksheets(Worksheets.Count) Range("C13").Select With ActiveSheet Dim a As String a = InputBox("日付を入力して下さい") Range("D8") = a ActiveSheet.Name = a End With End Sub
お礼
早速のご回答ありがとうございました。 URL参考になりました^^