この関数を使用して、ワークブックから別のワークブックにシートをコピーしています。動作しますが、ワークブックからマクロを無効にすると、シートをコピーできなくなったようです。
この行を変更すると: m_objExcel.AutomationSecurity = msoAutomationSecurityForceDisable
これに m_objExcel.AutomationSecurity = msoAutomationSecurityByUI
動作しますが、警告メッセージが表示されます。また、行にコメントを付けると、完全に機能しますが、マクロがオンになっています。
Private Sub CopyFunction()
Set m_objExcel = New Excel.Application 'creare obiect
m_objExcel.DisplayAlerts = False
g_secAutomation = m_objExcel.AutomationSecurity
m_objExcel.AutomationSecurity = msoAutomationSecurityForceDisable
m_objExcel.Visible = True
Dim CopyFrom As Workbook
Dim CopyTo As Workbook
Dim CopyThis As Object
Set CopyFrom = m_objExcel.Workbooks.Open("D:\FromFile.xls")
Set CopyTo = m_objExcel.Workbooks.Open("D:\ToFile.xls")
Set CopyThis = CopyFrom.Sheets(1) ''Sheet number 1
CopyThis.Copy After:=CopyTo.Sheets(1)
m_objExcel.Workbooks(CopyTo.FullName).Save
CopyFrom.Close
CopyTo.Close
m_objExcel.Workbooks.Close
MsgBox "ok"
End Sub
Access から使用しており、Excel ファイルで作業しています。何が問題ですか?ワークブックから別のワークブックにシートをコピーし、マクロを無効にする方法はありますか?