new field update

Option Public
Option Declare



Dim db 			As notesdatabase
Dim col 			As NotesDocumentCollection	
Dim doc 			As NotesDocument		
Dim Damidoc 		As NotesDocument
Dim item 			As NotesItem
Dim itmDami 		As NotesItem

Dim strFldNm 		As String
Dim strPattan 		As String	
Dim count			As Integer

Dim K_Flg 			As String		'更新したかどうかのフラグ


Sub Initialize
	
	On Error Goto RunTimeErr	
	
	'1).基本宣言
	Dim ss 			As New NotesSession
	Dim uiwork 		As New Notesuiworkspace	
	
	Dim lngRet 		As Long
	Dim L_count 		As Long
	Dim intFldNm 		As Integer
	Dim i				As Integer
	Dim k				As Integer
	Dim b				As Integer
	Dim count			As Integer
	Dim strList 		As String
	Dim strZenkai 		As String
	
	Dim strBuf			As String
	Dim varMoji 		As Variant
	Dim varWork1		As Variant
	Dim varWork2		As Variant
	
	'2).初期設定
	
	Const cntMax			= 50	
	Const cntSpe			= "%$&"
	Const cntEnvName1	= "EnviCommonToolFieldConvOnlyUpDate"
	Const cntEnvName2	= "EnviCommonToolFieldDefOnlyUpDate"	
	
	Set db					= ss.CurrentDatabase	
	Set Damidoc			= New notesdocument(db)
	'選択した文書のみ取得
	Set col					= db.UnprocessedDocuments
	
	'3).環境変数から初期値をRead
	'環境変数に格納した過去フィールド名として入力された値を50個リストとして取得する	
	'/ループにて、50回、まわす。（上限５０個）
	For i = 1 To cntMax		
		strBuf 				= ss.GetEnvironmentString(cntEnvName1+Right("00"+Cstr(i),2))
		If strBuf<>"" Then
			strList			= strList + strBuf + cntSpe
		End If
	Next
	
	'4).作業用画面の表示
	strZenkai 				= ss.GetEnvironmentString(cntEnvName2)
	Damidoc.txt05			= Split(strList,cntSpe)
	Damidoc.txt01			= strZenkai
	Damidoc.int01			= col.Count	
	
ReDialog:
	lngRet 		= uiwork.DialogBox("frmToolFieldUpDate2",True,True , False , False ,False, False , "データの書き換え" ,Damidoc,True)	
	If lngRet	= False Then
		
		Goto EndSyori
	End If
	
	'5).エラー回避
	If Damidoc.txt01(0)="" Then
		Msgbox "フィールド名を指定して下さい。",64+0,"確認"
		Goto ReDialog
	End If
	
	'
	strFldNm	=""
	strPattan	=""
	L_count		=0	
	'6).更新対象のフィールド名を取得
	intFldNm 			= Instr(1,Damidoc.txt01(0)," ")			'半角ブランク
	If intFldNm			= 0 Then
		intFldNm 		= Instr(1,Damidoc.txt01(0),"　")			'全角ブランク		
		If intFldNm		= 0 Then
			strFldNm 	= Damidoc.txt01(0)	
		Else
			strFldNm 	= Left(Damidoc.txt01(0),intFldNm-1)		
		End If
	Else
		strFldNm 		= Left(Damidoc.txt01(0),intFldNm-1)		
	End If	
	Set doc				= col.GetFirstDocument
	
	'7).選択文書の更新	
	Do While Not(doc Is Nothing)		
		K_Flg = ""	
		'更新方法として選択された値により処理を変更
		Select Case Damidoc.txt06(0)
			
		Case "1"			'データ更新
			If (DataKoushin) Then
			Else
				Goto ReDialog				
			End If
			
		Case "2"			'データ置き換え	
			If (DataOkikae) Then
			Else
				Goto ReDialog				
			End If
			
		Case "3"			'データ追加
			If (DataTuika) Then
			Else
				Goto ReDialog				
			End If
			
		Case "4"			'データ削除
			If (DataSakujo) Then
			Else
				Goto ReDialog				
			End If
''%REM									
		Case "5"			'フィールド追加	
			If (FieldTuika) Then
			Else
				Goto ReDialog				
			End If
		Case "6"			'フィールド削除
			If (FieldSakujo) Then
			Else
				Goto ReDialog				
			End If
'%END REM
		End Select		
		'/カウントアップ
		If K_Flg = "1" Then
			L_count			= L_count+1
			Call doc.Save(True,True)		
		End If
		Set doc			= col.GetNextDocument(doc)
	Loop
	
	
	
	'8).一回、環境変数を全部削除
	For i	= 1 To cntMax		
		Call ss.SetEnvironmentVar(cntEnvName1+Right("00"+Cstr(i),2),"")
	Next
	
	'9).全角ブランクを、半角ブランクに変更。
	varWork1			= Split(Damidoc.txt01(0),"　")
	varWork2			= Join(varWork1," ")
	
	'10).環境変数に、現在の設定情報を格納	
	k						= 0
	
	'環境変数の先頭は　現在入力した値
	k					= 1
	Call ss.SetEnvironmentVar(cntEnvName1+Right("00"+Cstr(k),2),Cstr(varWork2))	
	
	
	Forall p In Damidoc.txt05
		If Cstr(p)<>"" Then
			If Cstr(p) <> Cstr(varWork2) Then
				k				= k+1
				Call ss.SetEnvironmentVar(cntEnvName1+Right("00"+Cstr(k),2),Cstr(p))
			End If
		End If			
	End Forall	
	Call ss.SetEnvironmentVar(cntEnvName2,Cstr(Damidoc.txt01(0)))
	
	'11).結果メッセージ
	Msgbox Cstr(L_count)+" 件の書き換えが終了しました。",64+0,"確認"
	
	'入力データを初期化して
	'再度　ダイアログ画面を表示する
	'初期化
	Damidoc.txt01=""
	Damidoc.txt02=""
	Damidoc.txt03="1"
	Damidoc.txt04="1"
'	Damidoc.txt05="" 
	Damidoc.txt06="1"
	Damidoc.txt07=""
	Damidoc.txt08="1"
	
	Goto ReDialog
	
	'ダイアログ画面で、キャンセルかExitした時はオブジェクトをNull化して処理を完了する
	
EndSyori:	
	'12).オブジェクトのNull化
	Set ss 				= Nothing
	Set uiwork 		 	= Nothing
	Set db  			= Nothing
	Set col 		 	= Nothing
	Set doc 		 	= Nothing
	Set Damidoc		= Nothing
	Set item 		 	= Nothing
	Set itmDami 		= Nothing	
	Exit Sub
	
RunTimeErr:
	Msgbox "(New_フィールド置き換え)(Initialize)(ｴﾗｰ行) "+Cstr(Erl) + " (ｴﾗｰ番号) "+Cstr(Err)+" (ｴﾗｰ内容) "+Cstr(Error),16+0,"ランタイムエラー"
	Err		= 0
	Exit Sub
	
End Sub





Function DataKoushin
	
'*************************************************************
'	目的	：	指定フィールドの値を入力した値で強制的に置換する
'					
'	
'*************************************************************
	
	On Error Goto RunTimeErr		
	DataKoushin = False
	
	Set item		= doc.getfirstitem(strFldNm)
	If item Is Nothing Then
		Msgbox "指定されたフィールドが、文書中に存在しませんでした。",64+0,"確認"
		Exit Function
	End If
	
		'/自動判別
	If Damidoc.txt03(0) 		= "1" Then			
			'/NULLの場合は、自動判別不可能なので、強制変換にしてもらう。
		If Cstr(item.values(0)) 	= "" Then
			Msgbox "更新先のデータがNullのため、データ型の自動判別ができません。"+Chr(13)_
			+"データ型を、「強制変換」にして、再度、実行して下さい。",64+0,"確認"
			Exit Function
		End If			
		If item.Type		= 1280 Then			'/テキスト
			strPattan		= "T"
		Elseif item.Type	= 768 Then				'/数値
			strPattan		= "S"
		Elseif item.Type	= 1024 Then			'/日付
			If Len(item.values(0))>10 Then
				strPattan	= "DJ"
			Else
				strPattan	= "D"
			End If
		Elseif item.Type	= 1074 Then			'/名前
			strPattan		= "N"
		Elseif item.Type	= 1075 Then			'/読者
			strPattan		= "READ"
		Elseif item.Type	= 1076 Then			'/作成者
			strPattan		= "EDIT"
		End If
		
		'/強制変換	
	Else
		Select Case Damidoc.txt04(0)
		Case "1"		'/テキスト
			strPattan	= "T"	
		Case "2"		'/数値
			strPattan	= "S"	
		Case "3"		'/日付
			strPattan	= "D"	
		Case "4"		'/日付 and 時刻
			strPattan	= "DJ"
		Case "5"		'/名前
			strPattan	= "N"
		Case "6"		'/読者
			strPattan	= "READ"
		Case "7"		'/作成者				
			strPattan	= "EDIT"
		End Select
	End If
	
		'/型別で、データを更新
	Select Case strPattan
	Case ""		'/データ型不明
		Msgbox "更新先のフィールドは、当ツールでは未対応のデータ型です。"+Chr(13)+"処理を中断します。",64+0,"確認"
		Exit Function
	Case "T"		'/テキスト			
			'/フィールド削除
		Call doc.RemoveItem(strFldNm)
			'/初回のみフィールドを、属性付きで生成
		count			= 0
		Forall o5 In Damidoc.txt02
			If count		= 0 Then
				Set itmDami	= New NotesItem(doc,strFldNm,Cstr(o5))					
				itmDami.IsSummary = True
			Else
				Call itmDami.AppendToTextList(Cstr(o5))
			End If				
			count		= count+1
		End Forall
		
	Case "S"		'/数値			
			'/フィールド削除
		Call doc.RemoveItem(strFldNm)
		Set itmDami	= New NotesItem(doc,strFldNm,"")			
		itmDami.IsSummary = True
			'/初回のみフィールドを、属性付きで生成
		count			= 0
		Forall oS In Damidoc.txt02
			If oS <> "" Then
				Redim Preserve lngBuf(count) As Long	
				lngBuf(count) 	= Clng(oS)
				count			= count+1
			End If				
		End Forall			
			'/値格納
		itmDami.Values			= lngBuf			
		
	Case "D"		'/日付			
			'/日付の場合は、リストは未対応。（難しい。）
		If Ubound(Damidoc.txt02) >= 1 Then
			Msgbox "日付リストの更新は、対応していません！",64+0,"確認"
			Exit Function
		End If		
			'/フィールド削除
		Call doc.RemoveItem(strFldNm)
		Dim ndt As New Notesdatetime(Damidoc.txt02(0))			
		Call doc.ReplaceItemvalue(strFldNm,ndt)    '???★要確認
		
	Case "DJ"		'/日付 and 時刻
			'/フィールド削除
		Call doc.RemoveItem(strFldNm)
		Set itmDami			= New NotesItem(doc,strFldNm,"")			
		itmDami.IsSummary = True
			'/初回のみフィールドを、属性付きで生成
		count					= 0
		Forall oDJ In Damidoc.txt02
			If oDJ <> "" Then
				Redim Preserve DJBuf(count) As Variant
				DJBuf(count) 	= Cdat(oDJ)
				count			= count+1
			End If				
		End Forall			
			'/値格納
		itmDami.Values			= DJBuf
		
	Case "N"		'/名前
			'/フィールド削除
		Call doc.RemoveItem(strFldNm)
			'/初回のみフィールドを、属性付きで生成
		count					= 0
		Forall o5 In Damidoc.txt02
			If count				= 0 Then
				Set itmDami	= New NotesItem(doc,strFldNm,Cstr(o5),Names)
				itmDami.IsSummary = True
			Else
				Call itmDami.AppendToTextList(Cstr(o5))
			End If				
			count				= count+1
		End Forall
		
	Case "READ"		'/読者
			'/フィールド削除
		Call doc.RemoveItem(strFldNm)
			'/初回のみフィールドを、属性付きで生成
		count					= 0
		Forall o5 In Damidoc.txt02
			If count				= 0 Then
				Set itmDami	= New NotesItem(doc,strFldNm,Cstr(o5),Readers)
				itmDami.IsSummary = True
			Else
				Call itmDami.AppendToTextList(Cstr(o5))
			End If				
			count				= count+1
		End Forall
		
	Case "EDIT"		'/作成者				
			'/フィールド削除
		Call doc.RemoveItem(strFldNm)
			'/初回のみフィールドを、属性付きで生成
		count					= 0
		Forall o5 In Damidoc.txt02
			If count				= 0 Then
				Set itmDami	= New NotesItem(doc,strFldNm,Cstr(o5),Authors)
				itmDami.IsSummary = True
			Else
				Call itmDami.AppendToTextList(Cstr(o5))
			End If				
			count				= count+1
		End Forall
		
	End Select
	
	K_Flg = "1"
	DataKoushin = True	
	
	Exit Function
	
RunTimeErr:
	Msgbox "(New_フィールド置き換え)(DataKoushin)(ｴﾗｰ行) "+Cstr(Erl) + " (ｴﾗｰ番号) "+Cstr(Err)+" (ｴﾗｰ内容) "+Cstr(Error),16+0,"ランタイムエラー"
	Err		= 0
	Exit Function
	
	
End Function





Function DataOkikae
	
'*************************************************************
'	目的	：	指定フィールドの値に更新元値の値が存在している場合
'				入力した値で置換する
'					
'	
'*************************************************************
	
	On Error Goto RunTimeErr		
	DataOkikae = False
	
	Dim x As Integer
	
	
	If Damidoc.txt07(0) = "" Then
		Msgbox "更新元値は必須です。",16+0,"エラー"
		Exit Function
	End If
	
	Set item		= doc.getfirstitem(strFldNm)
	If item Is Nothing Then
		Msgbox "指定されたフィールドが、文書中に存在しませんでした。",64+0,"確認"
		Exit Function
	End If
	
	
	strPattan=""
	
	If item.Type		= 1280 Then			'/テキスト
		strPattan		= "T"
	Elseif item.Type	= 768 Then				'/数値
		strPattan		= "S"
	Elseif item.Type	= 1024 Then			'/日付
		If Len(item.values(0))>10 Then
			strPattan	= "DJ"
		Else
			strPattan	= "D"
		End If
	Elseif item.Type	= 1074 Then			'/名前
		strPattan		= "N"
	Elseif item.Type	= 1075 Then			'/読者
		strPattan		= "READ"
	Elseif item.Type	= 1076 Then			'/作成者
		strPattan		= "EDIT"
	End If
	
	
	
	
	'フィールドの値を取得する
	'リスト分ループする
	'もし　更新元値と同じ値が合った場合は、更新値で上書きする
	'上書きしたら　K_Flg に "1"を格納する
	'同じ値がなかった場合は 処理しない
	Dim varDataList As Variant
	varDataList=item.Values
	For x = Lbound(item.Values) To Ubound(item.Values)
		If Cstr(item.Values(x)) = DamiDoc.txt07(0) Then			
			Select Case strPattan
				
				
				
			Case "T","N","READ","EDIT"
				varDataList(x)	= Damidoc.txt02(0)	
				
			Case "S"
				varDataList(x)	= Cdbl(Damidoc.txt02(0))
				
			Case "D"
				varDataList(x)	= Cdat(Format$(Damidoc.txt02(0),"yyyy/mm/dd"))	
			Case "DJ"
				varDataList(x)	= Cdat(Format$(Damidoc.txt02(0),"yyyy/mm/dd hh:mm:ss"))	
			End Select
			
			
			K_Flg = "1"	
			item.Values = Fulltrim(varDataList)
			Exit For
		End If
	Next x
	
	DataOkikae = True	
	
	Exit Function
	
RunTimeErr:
	Msgbox "(New_フィールド置き換え)(DataOkikae)(ｴﾗｰ行) "+Cstr(Erl) + " (ｴﾗｰ番号) "+Cstr(Err)+" (ｴﾗｰ内容) "+Cstr(Error),16+0,"ランタイムエラー"
	Err		= 0
	Exit Function
	
	
End Function





Function DataTuika
	
'*************************************************************
'	目的	：	指定フィールドの値に入力した値を追加する
'					
'	
'*************************************************************
	
	On Error Goto RunTimeErr		
	DataTuika = False
	
	Dim x As Integer
	
	'フィールドの値を取得する
	Set item		= doc.getfirstitem(strFldNm)
	If item Is Nothing Then
		Msgbox "指定されたフィールドが、文書中に存在しませんでした。",64+0,"確認"
		Exit Function
	End If
	
	'フィールドの種類を取得
	strPattan=""
	
	If item.Type		= 1280 Then			'/テキスト
		strPattan		= "T"
	Elseif item.Type	= 768 Then				'/数値
		strPattan		= "S"
	Elseif item.Type	= 1024 Then			'/日付
		If Len(item.values(0))>10 Then
			strPattan	= "DJ"
		Else
			strPattan	= "D"
		End If
	Elseif item.Type	= 1074 Then			'/名前
		strPattan		= "N"
	Elseif item.Type	= 1075 Then			'/読者
		strPattan		= "READ"
	Elseif item.Type	= 1076 Then			'/作成者
		strPattan		= "EDIT"
	End If
	
	'既存フィールドに　追加するデータがあるかを確認する
	'あった場合はK_Flg に "2"を格納する
	Dim varDataList As Variant
	varDataList=item.Values
	For x = Lbound(item.Values) To Ubound(item.Values)
		If Cstr(item.Values(x)) = DamiDoc.txt02(0) Then						
			K_Flg = "2"	
			Exit For
		End If
	Next x
	
	'追加データが存在している場合は処理しない
	If K_Flg = "2"Then
		K_Flg = ""
	Else
	'値をフィールドに追加する
	'追加したら　K_Flg に "1"を格納する
		
		Call item.AppendToTextList( Damidoc.txt02(0) )
		K_Flg = "1"	
	End If	
	DataTuika = True	
	
	Exit Function
	
RunTimeErr:
	Msgbox "(New_フィールド置き換え)(DataTuika)(ｴﾗｰ行) "+Cstr(Erl) + " (ｴﾗｰ番号) "+Cstr(Err)+" (ｴﾗｰ内容) "+Cstr(Error),16+0,"ランタイムエラー"
	Err		= 0
	Exit Function
	
	
End Function




Function DataSakujo
	
'*************************************************************
'	目的	：	指定フィールドの値に更新元値の値が存在している場合
'				入力した値で置換する
'					
'	
'*************************************************************
	
	On Error Goto RunTimeErr		
	DataSakujo = False
	
	Dim x As Integer
	
	Set item		= doc.getfirstitem(strFldNm)
	If item Is Nothing Then
		Msgbox "指定されたフィールドが、文書中に存在しませんでした。",64+0,"確認"
		Exit Function
	End If
	
	'
	If DamiDoc.txt02(0) = "" Then
	Else
		
	'フィールドの値を取得する
	'リスト分ループする
	'もし　更新元値と同じ値が合った場合は、更新値で上書きする
	'上書きしたら　K_Flg に "1"を格納する
	'同じ値がなかった場合は 処理しない
		Dim varDataList As Variant
		varDataList=item.Values
		For x = Lbound(item.Values) To Ubound(item.Values)
			If Cstr(item.Values(x)) = DamiDoc.txt02(0) Then			
				varDataList(x)	= ""
				K_Flg = "1"	
				item.Values = Fulltrim(varDataList)
				Exit For
			End If
		Next x
	End If	
	DataSakujo = True	
	
	Exit Function
	
RunTimeErr:
	Msgbox "(New_フィールド置き換え)(DataSakujo)(ｴﾗｰ行) "+Cstr(Erl) + " (ｴﾗｰ番号) "+Cstr(Err)+" (ｴﾗｰ内容) "+Cstr(Error),16+0,"ランタイムエラー"
	Err		= 0
	Exit Function
	
	
End Function




Function FieldTuika
	
'*************************************************************
'	目的	：	指定フィールドを追加する
'				ただし、	追加条件により追加方法を変える
'	
'*************************************************************
	
	On Error Goto RunTimeErr		
	FieldTuika = False
	
	Dim x As Integer
	
	'フィールドのタイプを選択させる
	If 	Damidoc.txt03(0) = "1" Then
		Msgbox "強制を選択して下さい。",16+0,"エラー"
		Exit Function
	Else
		Select Case Damidoc.txt04(0)
		Case "1"		'/テキスト
			strPattan	= "T"	
		Case "2"		'/数値
			strPattan	= "S"	
		Case "3"		'/日付
			strPattan	= "D"	
		Case "4"		'/日付 and 時刻
			strPattan	= "DJ"
		Case "5"		'/名前
			strPattan	= "N"
		Case "6"		'/読者
			strPattan	= "READ"
		Case "7"		'/作成者				
			strPattan	= "EDIT"
		End Select
	End If
	
	
	
	'追加条件により処理を変更する
	'存在していない場合のみ追加の場合
	
	Set item		= doc.getfirstitem(strFldNm)
	If Damidoc.txt08(0) = "1" Then
		
		'フィールドがある場合は処理を抜ける
		If item Is Nothing Then
		Else
			Goto EndSyori
		End If
		
'	すべて上書き追加の場合		
	Else
		
		If item Is Nothing Then
		Else
			' フィールドを削除
			Call item.Remove
'			Call doc.RemoveItem(strFldNm)
			
		End If
	End If
	'フィールド追加	
	
		'/型別で、データを更新
	Select Case strPattan
	Case ""		'/データ型不明
		Msgbox "更新先のフィールドは、当ツールでは未対応のデータ型です。"+Chr(13)+"処理を中断します。",64+0,"確認"
		Exit Function
	Case "T"		'/テキスト			
			'/フィールド削除
		
			'/初回のみフィールドを、属性付きで生成
		count			= 0
		Forall o5 In Damidoc.txt02
			If count		= 0 Then
				Set itmDami	= New NotesItem(doc,strFldNm,Cstr(o5))					
				itmDami.IsSummary = True
			Else
				Call itmDami.AppendToTextList(Cstr(o5))
			End If				
			count		= count+1
		End Forall
		
	Case "S"		'/数値			
			'/フィールド削除
		Call doc.RemoveItem(strFldNm)
		Set itmDami	= New NotesItem(doc,strFldNm,"")			
		itmDami.IsSummary = True
			'/初回のみフィールドを、属性付きで生成
		count			= 0
		Forall oS In Damidoc.txt02
			If oS <> "" Then
				Redim Preserve lngBuf(count) As Long	
				lngBuf(count) 	= Clng(oS)
				count			= count+1
			End If				
		End Forall			
			'/値格納
		itmDami.Values			= lngBuf			
		
	Case "D"		'/日付			
			'/日付の場合は、リストは未対応。（難しい。）
		If Ubound(Damidoc.txt02) >= 1 Then
			Msgbox "日付リストの更新は、対応していません！",64+0,"確認"
			Exit Function
		End If		
			'/フィールド削除
		Call doc.RemoveItem(strFldNm)
		Dim ndt As New Notesdatetime(Damidoc.txt02(0))			
		Call doc.ReplaceItemvalue(strFldNm,ndt)    '???★要確認
		
	Case "DJ"		'/日付 and 時刻
			'/フィールド削除
		Call doc.RemoveItem(strFldNm)
		Set itmDami			= New NotesItem(doc,strFldNm,"")			
		itmDami.IsSummary = True
			'/初回のみフィールドを、属性付きで生成
		count					= 0
		Forall oDJ In Damidoc.txt02
			If oDJ <> "" Then
				Redim Preserve DJBuf(count) As Variant
				DJBuf(count) 	= Cdat(oDJ)
				count			= count+1
			End If				
		End Forall			
			'/値格納
		itmDami.Values			= DJBuf
		
	Case "N"		'/名前
			'/フィールド削除
		Call doc.RemoveItem(strFldNm)
			'/初回のみフィールドを、属性付きで生成
		count					= 0
		Forall o5 In Damidoc.txt02
			If count				= 0 Then
				Set itmDami	= New NotesItem(doc,strFldNm,Cstr(o5),Names)
				itmDami.IsSummary = True
			Else
				Call itmDami.AppendToTextList(Cstr(o5))
			End If				
			count				= count+1
		End Forall
		
	Case "READ"		'/読者
			'/フィールド削除
		Call doc.RemoveItem(strFldNm)
			'/初回のみフィールドを、属性付きで生成
		count					= 0
		Forall o5 In Damidoc.txt02
			If count				= 0 Then
				Set itmDami	= New NotesItem(doc,strFldNm,Cstr(o5),Readers)
				itmDami.IsSummary = True
			Else
				Call itmDami.AppendToTextList(Cstr(o5))
			End If				
			count				= count+1
		End Forall
		
	Case "EDIT"		'/作成者				
			'/フィールド削除
		Call doc.RemoveItem(strFldNm)
			'/初回のみフィールドを、属性付きで生成
		count					= 0
		Forall o5 In Damidoc.txt02
			If count				= 0 Then
				Set itmDami	= New NotesItem(doc,strFldNm,Cstr(o5),Authors)
				itmDami.IsSummary = True
			Else
				Call itmDami.AppendToTextList(Cstr(o5))
			End If				
			count				= count+1
		End Forall
		
	End Select	
	
	K_Flg = "1"		
'	
' 
	
EndSyori:	
	
	
	FieldTuika = True	
	
	Exit Function
	
RunTimeErr:
	Msgbox "(New_フィールド置き換え)(FieldTuika)(ｴﾗｰ行) "+Cstr(Erl) + " (ｴﾗｰ番号) "+Cstr(Err)+" (ｴﾗｰ内容) "+Cstr(Error),16+0,"ランタイムエラー"
	Err		= 0
	Exit Function
	
	
End Function




Function FieldSakujo
	
'*************************************************************
'	目的	：	指定フィールドが存在している場合削除する
'					
'	
'*************************************************************
	
	On Error Goto RunTimeErr		
	FieldSakujo = False
	
	
	
	'フィールドがあれば削除する
	Set item		= doc.getfirstitem(strFldNm)
	If item Is Nothing Then
	Else
		Call item.Remove
		K_Flg = "1"		
	End If
	
	
	FieldSakujo = True	
	
	Exit Function
	
RunTimeErr:
	Msgbox "(New_フィールド置き換え)(FieldSakujo)(ｴﾗｰ行) "+Cstr(Erl) + " (ｴﾗｰ番号) "+Cstr(Err)+" (ｴﾗｰ内容) "+Cstr(Error),16+0,"ランタイムエラー"
	Err		= 0
	Exit Function
	
	
End Function