
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で質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ACCESSでコントロールソースの変更
-
Accessのフォームにて、詳細行...
-
Accessでフィールド名を変数(...
-
Excel 入力規則 リスト 複数...
-
iphoneのフルスクリーンの解除方法
-
【ACCESS】フォーム名/コントロ...
-
Access・VBAで、Controlsを使用...
-
コントロールソースって
-
AutoCAD 画層管理コントロール...
-
Excel ユーザーフォーム呼び出...
-
アクセスのフォームの区切り線...
-
アクセスでカレンダーを表示す...
-
After Effectsでレイヤーの表示...
-
ACCESSのフォームからハイパー...
-
アクセスで、チェックボックス...
-
Access レポート印刷するときに...
-
データベースのINT型項目にNULL...
-
レコードを保存するコード ア...
-
サブフォームに対してGoToRecor...
-
アクセスで数値型のフィールド...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ACCESSでコントロールソースの変更
-
iphoneのフルスクリーンの解除方法
-
Accessのフォームにて、詳細行...
-
Accessでフィールド名を変数(...
-
【ACCESS】フォーム名/コントロ...
-
Excel 入力規則 リスト 複数...
-
ACCESSのフォームからハイパー...
-
アクセスフォームで2つを結合テ...
-
アクセスで、チェックボックス...
-
Excel ユーザーフォーム呼び出...
-
access 改ページコントロール
-
Access・VBAで、Controlsを使用...
-
ACCESS テキストボック...
-
FlashPlayerのインストールにつ...
-
アクセスのフォームの区切り線...
-
access setfocusについて
-
コントロールソースって
-
Accessの連結、非連結とは何?
-
【Access】サブフォームの項目...
-
Excelのコントロールツールボッ...
おすすめ情報