Word 2013 이상에서 신원호를 지원하기에는 괄호가 나쁘지만 날짜 CC에서 docx 형식으로 저장합시다.

Docx 형식으로 Word 문서를 저장하는 이유



날짜 선택 콘텐츠 컨트롤이 doc 형식으로 사용할 수 없기 때문에.
word2010에서도 사용할 수 있지만 경계색을 설정하지 않는 것이 좋을지도 모릅니다.
보충: 또 Docx 형식에서도 호환 모드일 때는 사용할 수 없습니다. 호환 모드를 해제해야 합니다. 호환 모드는 날짜 선택 컨텐츠 컨트롤(이하, 「날짜 CC」라고 약칭한다.) 외에 Word 2010/2013에서 개체 선택 및 표시가 회색으로 표시되어 선택할 수 없음 등 제약이 있다. 해제 방법은 이쪽을 참조할 것. 새로운 확장자이지만 호환 모드로 표시됨

신원호에 대응하는 방법



Word2016은 신원호에 대응할 준비가 되어 있다.
따라서 날짜를 날짜 CC로 입력하고 docx 또는 docm으로 저장합니다 (호환 모드가 아님).
이와 같이 해 두면 Word의 갱신으로 새로운 원호로 자동적으로 설정된다.
Word2013은 갱신될지 불명하지만, 막상이라고 할 때는 기원 4자리 표시로 변환할 수 있다.

수동으로 삽입



Yone의 Word & Excel 강좌 Word2010 날짜 선택 콘텐츠 컨트롤 사용 방법
개발 탭을 표시해야합니다.
또한 Word2013에서 미묘하게 개선되었습니다. Word의 콘텐츠 컨트롤
Word 2013의 콘텐츠 컨트롤 개선
Word 2013에서는 콘텐츠 컨트롤에 세 가지 주요 개선 사항이 추가되었습니다. 즉, 시각화 개선, 서식 있는 텍스트 콘텐츠 컨트롤의 XML 매핑 지원, 새 반복 콘텐츠의 콘텐츠 컨트롤입니다.
시각화 개선
Word 2013에서는 다음 세 가지 상태 중 하나에서 개별 콘텐츠 컨트롤을 볼 수 있습니다.
경계 상자
시작/종료 태그
없음
그리고 경계 박스 때, Word2013 이후는 포커스가 없는 한 시각화되지 않게 되었다.

VBA



우선 InputBox에서 오늘의 날짜를 등록할 수 있도록 했다.
Tag는 편집중에는 보이지 않지만, 일본 달력의 표시 형식을 나타내고 있다.
이는 서기 디스플레이로 변환할 때 검색에서 사용할 수 있습니다.
Sub InsertDateCC()
'For Word 2013 Later

'For Word 2013 Later

Dim wDoc As Word.Document: Set wDoc = ThisDocument
Dim wRng As Word.Range
Dim wdContentCtrl As ContentControl
Dim DT As Date
Dim buf As String

On Error GoTo Terminator
buf = InputBox("日付を入力してください", "日付挿入", Date)
If IsDate(buf) = False Then GoTo Terminator
DT = CDate(buf)
Set wRng = Selection.Range
Set wdContentCtrl = wRng.ContentControls.Add(wdContentControlDate) '[WdContentControlType 列挙 (Word)](https://msdn.microsoft.com/ja-jp/vba/word-vba/articles/wdcontentcontroltype-enumeration-word)
'Const wdContentControlDate = 6
With wdContentCtrl
'.PlaceholderText = DT
 .Tag = "CC_Date_Jpn_ggge_m_d_aaa" 'Titleと違い、編集中は表示されないが、Wordに格納されている。
 .Color = wdColorAqua '境界色
 .MultiLine = True '複数行が可能。ただしテキストとリッチテキストにしか有効ではない
 .Title = "Date" & Format(DT, "yyyymmdd") 'ここの月は小文字でよい
 .Range.Text = DT
 '.DateCalendarType = wdCalendarWestern 'グレゴリオ暦 0 [WdCalendarType 列挙 (Word)](https://msdn.microsoft.com/ja-jp/vba/word-vba/articles/wdcalendartype-enumeration-word?f=255&MSPPError=-2147217396)
 .DateDisplayFormat = "ggge年M月d日(aaa)"
 .LockContentControl = False 'True:delete Unable コンテンツコントロール削除不可
 .LockContents = False 'True : Modify contents value unable 値変更不可
End With
Exit Sub
Terminator:
MsgBox buf & "は日付と解釈できません"
End Sub

일본 달력에서 기원(yyyy/M/d)



wdoc.contentcontrols에서 집합이므로 태그로 필터링하거나 표시 형식으로 필터링하여 표시 형식을 변경합니다.

Sub TranspherDateCC_JpnFormatToyyyyMMdd()
'For Word 2013 Later
Dim wDoc As Word.Document: Set wDoc = ThisDocument
Dim wRng As Word.Range
Dim wdCC As ContentControl, wdCCs As ContentControls
Dim DT As Date
Dim buf As String
Set wdCCs = wDoc.ContentControls
For Each wdCC In wdCCs
If wdCC.DateDisplayFormat = "ggge年M月d日(aaa)" Then ’ここの月は大文字のM
'If wdCC.DateDisplayFormat = "ggge年M月d日(aaa)" And wdCC.Tag = "CC_Date_Jpn_ggge_m_d_aaa" Then
'タイトルやTagをつけておくと、変更するべき日付CCを絞り込むことができる。
wdCC.DateDisplayFormat = "yyyy/MM/dd"
wdCC.Tag = ""
wdCC.Tag = "DateyyyyMMdd"
End If
Next wdCC
End Sub

서기부터 일본 달력 요일 포함


Sub TranspherDateCC_yyyyMMddtoJpnDateFmtgggeMdaaa()
Dim wDoc As Word.Document: Set wDoc = ThisDocument
Dim wRng As Word.Range
Dim wdCC As ContentControl, wdCCs As ContentControls
Dim DT As Date
Dim buf As String
Set wdCCs = wDoc.ContentControls
For Each wdCC In wdCCs
If wdCC.DateDisplayFormat = "yyyy/MM/dd" Then
wdCC.DateDisplayFormat = "ggge年M月d日(aaa)"
wdCC.Tag = ""
wdCC.Tag = "CC_Date_Jpn_ggge_m_d_aaa"
End If
Next wdCC
End Sub

Word2016은 신원호 대응 준비중(괄호 나쁘지만)



날짜 콘텐츠 컨트롤로 날짜 표시 형식을 ggge년 M월d일로, 날짜를 2019년 5월 1일 이후로 하면? ? 1년 M월d일로 표시됩니다.


위의 매크로는 추가 기능이나 일반 템플릿에 있습니다.



추가 기능을 권장합니다.
저장하는 파일은 Docx 형식이 되어 매크로가 붙지 않습니다.
이 날짜 CC는 매크로가 아니며 양식이 아닙니다.

좋은 웹페이지 즐겨찾기