Results of 1 - 1 of about 1258 for カレンダー (0.001 sec.)
- [[20201217094827]]
- #score: 6105
- @digest: 2fb152363a84f51d981cc9331922eda8
- @id: 86137
- @mdate: 2020-12-17T10:49:17Z
- @size: 13230
- @type: text/plain
- #keywords: outputdate (191850), lblday (50877), frmcalendar (41156), lblyear (38104), lblmonth (30995), setcalendar (30483), caption (23744), movenextmonth (23246), movepremonth (23246), targetdate (23208), actform (22494), 出人 (17976), 差出 (16453), 書番 (16137), targetrange (15867), 文書 (14607), 治体 (14440), 照会 (9798), private (7724), click (7687), ド文 (6316), dateserial (5616), カレ (5371), 全国 (5205), レン (3624), ーフ (3143), ンダ (2952), ダー (2718), controls (2541), 本文 (2506), ォー (2277), sub (2254)
- 『VBA(ユーザー入力フォーム)
でWordのよく使う文書の一部を編集して印刷したい』(mako) いつもお世話になっております。 今回は、頻繁に利用するワード文書ファイルの一部を、VBAのユーザー入力フォーム上で編集して、印刷するシステムを作りたいと考えています。 皆様のアドバイスをいただき、作成したいので、ご教授願います。 ちなみに、当該のワード文書は、全国の自治体から送られてきた照会文書をもとに、都度回答をする文書です。 文書例) |[B] |[C]|[D]|[E]|[F] |[G] |[H]|[I] [2] | | | | |2020/12/17(発送日)| | | [3] | | | | |2020-1(文書番号) | | | [4] |〇市(宛名) | | | | | | | [5] | | | | | |差出人(固定名)| | [6] |〇〇の照会について(回答)(タイトル) | | | | | | | [7] | みだしのことについて、<日付><文書番号>で照会のありました内容について、別紙のとおり回答させていただきます。| | | | | | | [8] | | | | | | | | [9] | | | | | | | | [10]| | | | | | | | [11]| | | | | | | | [12]| | | | | | | | [13]| | | | | | | | 1.ワード文書で都度編集が必要な項目 宛先:全国の自治体 日付:文書を発送する日 文書番号:紙ベースのリスト表から日付順に番号を取得します タイトル:差出人が作成した文書タイトルと同じ(電子ではなく紙ベース) 本文:みだしのことについて、<<差出人発行の文書日付>><<差出人の文書番号>>で通知のありました件、回答させていただきます。 ※本文は<<>>で括った部分を毎回編集しています。 2.実現したいこと 1) Easy-Replay(仮のユーザーフォーム名)を起動。 2) VBAのユーザーフォームを使い、以下の項目と入力方法を設定。 [項目] [入力方法] ・宛先 ・リストから選択(頭文字検索で選択しやすいようにする) ・日付 ・カレンダーから選択 ・文書番号 ・手入力 ・タイトル ・手入力 ・本文 ・差出人発行の文書日付 ・差出人の文書番号 3) ユーザーフォームの項目をすべて入力する。 4) 印刷プレビューボタンを押して、文書に不備がないか確認する。 5) 印刷ボタンを押して、印刷をする。 3.困っていること ユーザーフォームの見た目だけは作ることができるのですが、実現するためのコードの記述がさっぱりわかりません。 < 使用 Excel:Excel2016、使用 OS:Windows10 > ---- >ユーザーフォームの見た目だけは作ることができるのですが、実現するためのコードの記述がさっぱりわかりません。 だったら、お金払って、業者と仕様打合せしてやってもらえば、と思ってしまいますね。 それだけ、漠然とした内容とそれなりのボリュームだから、私にはそう思えてしまいました。 ご自身でチャレンジして、分からない、納得がいかない事を質問してみてはいかがでしょうか。 1)〜5)までで、どこが分かりませんか? (tkit) 2020/12/17(木) 11:37 ---- 差し込み印刷で出来そうな気もしますがあまり詳しくないので断言できないです。 文書番号は紙ベースなんですね… データベース化されてればそこも取得できるかなと思いましたが。 (ななし) 2020/12/17(木) 11:44 ---- >ちなみに、当該のワード文書は、全国の自治体から送られてきた照会文書をもとに、都度回答をする文書です。 なぜ Excel で回答するのだろうか。 Word をひな型にして保存すれば済むことだと思うが。 (分け知らず) 2020/12/17(木) 13:40 ---- >ななし様 分け知らず様 後だしですみません。 これを作成する目的としては、編集すべき項目をVBAのユーザーフォームで見える化し、抜けもれなく文書を作成するための補助ツールです。 現状では、過去に作成したword文書に編集すべき項目(宛名、日付、文書番号、タイトルetc)のみ上書き編集しています。 たまに日付が前回のままであったりとヒューマンエラーがあるのでこれを改善したいのです。 それと、よくよく考えてみますと、ワードファイルで文書を作成する必要性もなかったので、VBAでワードファイルを編集するというのは一旦、保留にしたいと思います。 (mako) 2020/12/17(木) 15:18 ---- >tkit様 現在、ユーザーフォームの日付を入力する際に、カレンダーをつかってテキストボックスに 日付データを入れようとしているのですが、、外部ソースからもってきたカレンダーがうまく 機能せずに困っています。 [発生しているエラー] Esay-Replayのユーザーフォーム上のコマンドボタン4を押すと、カレンダーを表示するように していますが、カレンダーのフォームは呼び出せていますが、カレンダーの月日が何も表示されません。 Private Sub CommandButton4_Click() frmCalendar.Show End Sub <<カレンダーのユーザーフォームコード>> Option Explicit Private Const COLOR_NORMAL = &HE0E0E0 Private Const COLOR_TODAY = &H99FFFF Public TargetRange As Range Public Sub Initialize() Dim dt As Date If IsDate(TargetRange.value) = False Then dt = Date Else dt = TargetRange.value End If SetCalendar year(dt), month(dt) End Sub Private Sub Label2_Click() End Sub Private Sub lblPreMonth_Click() MovePreMonth End Sub Private Sub lblPreMonth_DblClick(ByVal Cancel As MSForms.ReturnBoolean) MovePreMonth End Sub Private Sub MovePreMonth() Dim dt As Date dt = DateSerial(lblYear.Caption, lblMonth.Caption - 1, 1) SetCalendar year(dt), month(dt) End Sub Private Sub lblNextMonth_Click() MoveNextMonth End Sub Private Sub lblNextMonth_DblClick(ByVal Cancel As MSForms.ReturnBoolean) MoveNextMonth End Sub Private Sub MoveNextMonth() Dim dt As Date dt = DateSerial(lblYear.Caption, lblMonth.Caption + 1, 1) SetCalendar year(dt), month(dt) End Sub Private Sub SetCalendar(ByVal year As Integer, ByVal month As Integer) '年月を表示 lblYear.Caption = year lblMonth.Caption = month Dim i As Integer Dim lblDay As Object 'カレンダーを初期化 For i = 1 To 37 Set lblDay = Me.Controls("lblDay" & i) lblDay.Caption = "" lblDay.BackColor = COLOR_NORMAL Next '始めの日 Dim firstDate As Date firstDate = DateSerial(year, month, 1) '曜日によって位置をずらす Dim position As Integer position = weekday(firstDate) - 1 '終わりの日 Dim endDay As Integer endDay = day(DateSerial(year, month + 1, 0)) For i = 1 To endDay Set lblDay = Me.Controls("lblDay" & (i + position)) lblDay.Caption = i If DateSerial(year, month, i) = Date Then lblDay.BackColor = COLOR_TODAY End If Next End Sub Private Sub OutputDate(ByVal day As String) If day = "" Then Exit Sub End If TargetRange.value = DateSerial(lblYear.Caption, lblMonth.Caption, day) Me.Hide End Sub Private Sub lblDay1_Click() OutputDate lblDay1.Caption End Sub Private Sub lblDay2_Click() OutputDate lblDay2.Caption End Sub Private Sub lblDay3_Click() OutputDate lblDay3.Caption End Sub Private Sub lblDay4_Click() OutputDate lblDay4.Caption End Sub Private Sub lblDay5_Click() OutputDate lblDay5.Caption End Sub Private Sub lblDay6_Click() OutputDate lblDay6.Caption End Sub Private Sub lblDay7_Click() OutputDate lblDay7.Caption End Sub Private Sub lblDay8_Click() OutputDate lblDay8.Caption End Sub Private Sub lblDay9_Click() OutputDate lblDay9.Caption End Sub Private Sub lblDay10_Click() OutputDate lblDay10.Caption End Sub Private Sub lblDay11_Click() OutputDate lblDay11.Caption End Sub Private Sub lblDay12_Click() OutputDate lblDay12.Caption End Sub Private Sub lblDay13_Click() OutputDate lblDay13.Caption End Sub Private Sub lblDay14_Click() OutputDate lblDay14.Caption End Sub Private Sub lblDay15_Click() OutputDate lblDay15.Caption End Sub Private Sub lblDay16_Click() OutputDate lblDay16.Caption End Sub Private Sub lblDay17_Click() OutputDate lblDay17.Caption End Sub Private Sub lblDay18_Click() OutputDate lblDay18.Caption End Sub Private Sub lblDay19_Click() OutputDate lblDay19.Caption End Sub Private Sub lblDay20_Click() OutputDate lblDay20.Caption End Sub Private Sub lblDay21_Click() OutputDate lblDay21.Caption End Sub Private Sub lblDay22_Click() OutputDate lblDay22.Caption End Sub Private Sub lblDay23_Click() OutputDate lblDay23.Caption End Sub Private Sub lblDay24_Click() OutputDate lblDay24.Caption End Sub Private Sub lblDay25_Click() OutputDate lblDay25.Caption End Sub Private Sub lblDay26_Click() OutputDate lblDay26.Caption End Sub Private Sub lblDay27_Click() OutputDate lblDay27.Caption End Sub Private Sub lblDay28_Click() OutputDate lblDay28.Caption End Sub Private Sub lblDay29_Click() OutputDate lblDay29.Caption End Sub Private Sub lblDay30_Click() OutputDate lblDay30.Caption End Sub Private Sub lblDay31_Click() OutputDate lblDay31.Caption End Sub Private Sub lblDay32_Click() OutputDate lblDay32.Caption End Sub Private Sub lblDay33_Click() OutputDate lblDay33.Caption End Sub Private Sub lblDay34_Click() OutputDate lblDay34.Caption End Sub Private Sub lblDay35_Click() OutputDate lblDay35.Caption End Sub Private Sub lblDay36_Click() OutputDate lblDay36.Caption End Sub Private Sub lblDay37_Click() OutputDate lblDay37.Caption End Sub Private Sub lblYear_Click() End Sub Private Sub UserForm_Layout() 'フォームの位置が変わった場合は、 '再表示時にその位置を復元する StartUpPosition = 0 End Sub Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer) '表示位置がリセットされないようにする Cancel = True Me.Hide End Sub /////////////////////////////////////////////////// <<Easy-Relayのユーザーフォームコード>> Public ActForm As Object Sub FormNameGet() MsgBox ActForm.Name End Sub Private Sub CommandButton3_Click() Unload Me End Sub Private Sub CommandButton4_Click() frmCalendar.Show End Sub Private Sub TextBox2_Change() End Sub Private Sub UserForm_Initialize() Set ActForm = Me Call FormNameGet Dim i As Long Dim maxrow As Long 'リストの最終行を取得 maxrow = Cells(Rows.Count, 1).End(xlUp).Row With UserForm1 '一度リストを削除する .Controls("combobox1").Clear For i = 2 To maxrow 'コンボボックスにリストを追加する .Controls("combobox1").AddItem Cells(i, 1).value Next i End With End Sub (mako) 2020/12/17(木) 15:23 ---- 追記1 カレンダーのソースURLです。 https://rogolog.com/vba-calendar/ (mako) 2020/12/17(木) 15:25 ---- 追記2 下記のソースの家計簿完成版をダウンロードして 、家計簿ファイル内のカレンダーのユーザーフォームをエクスポートして Esay-ReplayのVBAProjectにインポートしています。 https://rogolog.com/excel-kakeibo/ (mako) 2020/12/17(木) 15:29 ---- >外部ソースからもってきたカレンダーがうまく機能せずに困っています。 外部サイトで解説している通りになっていないからです。 また、ご希望の動作を実現するには、コードの改造が必要です。 (tkit) 2020/12/17(木) 16:12 ---- カレンダーは動かす事ができました。 Private Sub TextBox1_Change() End Sub Private Sub TextBox1_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single) Set frmCalendar.TargetRange = ActiveCell frmCalendar.Initialize frmCalendar.Show Dim targetDate As String targetDate = frmCalendar.TargetRange.Value TextBox1.Value = targetDate Cells(1, 1).Value = targetDate End Sub (mako) 2020/12/17(木) 19:49
...
-
https://www.excel.studio-kazu.jp/wiki/kazuwiki/202012/20201217094827.txt
- [detail]
- similar
PREV
NEXT
Powered by
Hyper Estraier 1.4.13, with 97935 documents and 612132 words.
訪問者: