
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
#02です。
ユーザフォームに二つのテキストボックスと、一つのカレンダーコントロールを配置し、クリックしたテキストボックスに日付を返す方法です。変数を使ってテキストボックス名を引き渡しています
Dim tBox As String
Private Sub UserForm_Activate()
UserForm1.Calendar1.Visible = False
End Sub
Private Sub TextBox1_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
tBox = "TextBox1"
UserForm1.Calendar1.Visible = True
End Sub
Private Sub TextBox2_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
tBox = "TextBox2"
UserForm1.Calendar1.Visible = True
End Sub
Private Sub Calendar1_Click()
UserForm1.Controls(tBox).Text = Calendar1.Value
Calendar1.Visible = False
End Sub
No.3
- 回答日時:
#1です。
> テキストボックスが多数あるとき、カレンダーのフォームを1つで
> 済ます方法
コントロールツールボックスやフォームのテキストボックスの場合は
わかりませんが、一般のテキストボックスを使用するなら、
1.標準モジュールに以下を記述します。
Public TB
Sub ShowCalendar()
TB = ActiveSheet.Shapes.Range(Application.Caller).Name
UserForm1.Show
End Sub
Sub WriteData()
ActiveSheet.Shapes(TB).Select
Selection.Characters.Text = _
UserForm1.Calendar1.Month & "月 " _
& UserForm1.Calendar1.Day & "日"
End Sub
2.カレンダーコントロールを作成したユーザーフォームのコードとし
て以下を記述します。
Private Sub Calendar1_Click()
Application.Run "WriteData"
Unload Me
End Sub
3.それぞれのテキストボックスを右クリックし、"マクロの登録"から
ShowCalendar を指定します。
で、
テキストボックスをシングルクリックするとカレンダーが表示されま
すので、日付を選択します。
No.2
- 回答日時:
ユーザフォームに適すとボックスとカレンダーコントロールを配置します。
カレンダーコントロールは「ユーザフォームシートを開く」→「ツール」→「その他のコントロール」→「カレンダーコントロールにチェック」しないと表示されませんが、そこまではできていますか?後はユーザフォームのモジュールシートに以下のマクロを貼り付けます。UserForm1.Show でフォームを呼び出して、テキストボックスをクリック(正確にはMouseDown)して見てください。
Private Sub UserForm_Activate()
UserForm1.Calendar1.Visible = False
End Sub
Private Sub TextBox1_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
UserForm1.Calendar1.Visible = True
End Sub
Private Sub Calendar1_Click()
TextBox1.Text = Calendar1.Value
Calendar1.Visible = False
End Sub
TextBoxを経由すると日付は文字列型になりますので注意してください
この回答への補足
カレンダーコントロール表示まではできています
>後はユーザフォームのモジュールシートに以下のマクロを貼り付けます。
>UserForm1.Show でフォームを呼び出して、テキストボックスをクリック
>(正確にはMouseDown)して見てください。
このやり方も試してみたいと思います
どうもありがとうございます
VBAをはじめて2日目なので変数がちょっと難しいですが
勉強して実践してみたいと思います
このやり方も試してみたいと思います
どうもありがとうございます
No.1
- 回答日時:
適当に操作してみた結果ですが、とりあえず参考まで――
<案1>
1.コントロールツールボックスのテキストボックスをシート上に作成。
2.ユーザーフォーム上にカレンダーコントロールを作成。
3.以下のモジュールを作成。
4.テキストボックスのダブルクリックで表示される画面に以下を記述。
Private Sub TextBox1_DblClick(ByVal Cancel _
As MSForms.ReturnBoolean)
UserForm1.Show
End Sub
5.ユーザーフォームのコードとして以下を記述。
Private Sub Calendar1_Click()
ActiveSheet.TextBox1 = Calendar1.Month & "月 " _
& Calendar1.Day & "日"
Unload Me
End Sub
<案2>
1.コントロールツールボックスのテキストボックスとカレンダーコン
トロールをシート上に作成。
2.シートモジュールとして以下を記述。
Private Sub TextBox1_DblClick(ByVal Cancel _
As MSForms.ReturnBoolean)
ActiveSheet.OLEObjects.Add(ClassType:="MSCAL.Calendar.7", _
Left:=200, Top:=20, Width:=200, Height:=150).Select
End Sub
'
Private Sub Calendar1_Click()
TextBox1 = Calendar1.Month & "月 " & Calendar1.Day & "日"
Calendar1.Cut
End Sub
いずれも、テキストボックスのダブルクリックでカレンダーコントロ
ールが表示されます。
ただし、案2の場合は、コントロールツールボックスを表示させてお
き、デザインモードをいったんオンにしてからオフにしないと、カレ
ンダーコントロールがクリックできないようです。
この回答への補足
>misatoannaさん
回答ありがとうございます
案1でやってみたところうまくいきました
テキストボックスがたくさんあるとき
カレンダーのフォームもたくさん作ってみたのですが
1つで済ます方法とかもあるのでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) Access DTPickerの初期表示月を変えたい 1 2022/08/02 08:55
- その他(パソコン・スマホ・電化製品) Googleカレンダーで不要データを一括削除したい 1 2023/08/02 12:42
- Excel(エクセル) エクセル バーコード作成で他のシートを参照するには? 2 2023/05/03 16:57
- その他(プログラミング・Web制作) 出務表のwebページを作りたいです 3 2022/04/05 15:35
- Excel(エクセル) エクセルの条件付き書式について エクセルでカレンダーを作りました。縦に日付が並んでいて、横にスケジュ 3 2022/10/10 15:32
- その他(Microsoft Office) EXCELでバーコードを作成すると白くなってコードが見えません 1 2022/04/04 14:24
- Excel(エクセル) エクセルカレンダーに予定表を反映したいです。 6 2022/09/30 14:39
- Excel(エクセル) エクセルでカレンダーを作りたい 5 2023/05/16 07:32
- フィナンシャルプランナー(FP) 本日の日付が(F1)出たら、本日の勤務が(F2)同時に出るようにしたいのです。 1 2022/09/12 11:53
- Visual Basic(VBA) エクセルVBA エクセルを開いた後に編集可能な状態にするには? 2 2023/06/14 11:58
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【ACCESS】フォーム名/コントロ...
-
iphoneのフルスクリーンの解除方法
-
アクセスフォームで2つを結合テ...
-
ACCESSでコントロールソースの変更
-
Accessでフィールド名を変数(...
-
アクセスでカレンダーを表示す...
-
アクセスのフォームでテキスト...
-
ワード2010「フォームコントロ...
-
access 改ページコントロール
-
Accessのフォームにて、詳細行...
-
ACCESS テキストボック...
-
Accessの連結、非連結とは何?
-
AutoCAD 画層管理コントロール...
-
データベースのINT型項目にNULL...
-
Access レポート印刷するときに...
-
「フォームを作成できませんで...
-
Accessレポートのチェックボッ...
-
クエリで出来た表にチェックボ...
-
アクセスで数値型のフィールド...
-
レコードを保存するコード ア...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ACCESSでコントロールソースの変更
-
iphoneのフルスクリーンの解除方法
-
Accessのフォームにて、詳細行...
-
【ACCESS】フォーム名/コントロ...
-
ACCESSのフォームからハイパー...
-
Accessでフィールド名を変数(...
-
Excel 入力規則 リスト 複数...
-
Excel ユーザーフォーム呼び出...
-
アクセスで、チェックボックス...
-
アクセスフォームで2つを結合テ...
-
アクセスのフォームの区切り線...
-
access 改ページコントロール
-
ACCESS テキストボック...
-
AutoCAD 画層管理コントロール...
-
access setfocusについて
-
Access・VBAで、Controlsを使用...
-
Accessの連結、非連結とは何?
-
After Effectsでレイヤーの表示...
-
コントロールソースって
-
IllustratorCSで上部のツールバ...
おすすめ情報