質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
PowerShell

Windows PowerShellはコマンドラインインターフェースであり、システム管理を含むWindowsタスク自動化のためのスクリプト言語です。

Q&A

解決済

2回答

8943閲覧

PowershellでのExcelアドイン自動読み込みがExcel2010で失敗する

SUSU0703

総合スコア17

PowerShell

Windows PowerShellはコマンドラインインターフェースであり、システム管理を含むWindowsタスク自動化のためのスクリプト言語です。

0グッド

1クリップ

投稿2017/03/07 06:25

###前提・実現したいこと

Powershellで、Excelアドインを自動で読み込むスクリプトを作成しています。
Excel2007では正常に動作するのですが、Excel2010では以下のエラーが出てしまいます。
これは、更に何か設定が必要でしょうか。

###発生している問題・エラーメッセージ

[System.__ComObject] に 'AddIns' という名前のメソッドが含まれないため、メソッドの呼び出しに失敗しました。
発生場所 行:2 文字:21

  • $ExcelAddin = $excel.Workbooks.AddIns()
  • ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    • CategoryInfo : InvalidOperation: (AddIns:String) []、RuntimeException
    • FullyQualifiedErrorId : MethodNotFound

###該当のソースコード

Enable Discovery Addin

$Excel = New-Object -ComObject excel.application
$ExcelAddin = $excel.Workbooks.Add()
$TestAddin = $ExcelAddin.Application.AddIns.Add('C:\Oracle\SmartView\bin\HsTbar.xla', $True)
$TestAddin.Installed = "True"
$Excel.Quit()

###試したこと

###補足情報(言語/FW/ツール等のバージョンなど)
Windows7 64bit + Office2007 or Office2010 32bit + Powershell 4.0

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

$Excel.Workbooks が表示されないということは、そこに $null または空文字列が入っているんだろうと思います。
少なくとも COM オブジェクトは入っていません。
しかし、$Excel.Workbooks.Add は正常に表示されています。$null であれば表示されないはずです。つまり $Excel.Workbooks には COM オブジェクトが入っています。

以上より、$Excel.Workbooks と $Excel.Workbooks.Add の Workbooks は違うものを指していると思われます。一度 PowerShell を再起動し、履歴を使わずにやってみても同じ結果になりますか?

投稿2017/03/07 12:46

Zuishin

総合スコア28660

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Zuishin

2017/03/07 12:46

すみません。コメントに返信したつもりが新しい回答になってしまいました。
guest

0

該当のソースコードとエラーに表示されているコードが違うものです。まちがったスクリプトを実行していると思われます。

$ExcelAddin = $excel.Workbooks.AddIns()

エラーメッセージでは、ソースの二行目が上記のようなコードになっています。
Workbooks オブジェクトに AddIns() というメソッドは無いので、それがエラーになっています。

投稿2017/03/07 07:00

編集2017/03/07 07:05
Zuishin

総合スコア28660

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

SUSU0703

2017/03/07 10:59

Zuishinさん ご回答ありがとうございます!確かにおかしいですね。色々テストしていたので混乱していたかもしれません。改めて以下の行だけExcel2010のWin7マシンで実行したところ $Excel = New-Object -ComObject excel.application $ExcelWorkbook = $excel.Workbooks.Add() 以下のようなエラーが出ました。全く同じ行をWin7のExcel2007マシンで実行すると正常に処理されます。 $Excel = New-Object -ComObject excel.application $ExcelWorkbook = $excel.Workbooks.Add() [System.__ComObject] に 'Add' という名前のメソッドが含まれないため、メソッドの呼び出しに失敗しました。 発生場所 行:2 文字:1 + $ExcelWorkbook = $excel.Workbooks.Add() + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidOperation: (:) []、RuntimeException + FullyQualifiedErrorId : MethodNotFound 例えば、$excel.Workbooksまで消して、その後.を入力するとちゃんと候補一覧にAddは出てくるのでそれを選択しているにもかかわらずメソッドがない、と出てしまいます。 何か回避方法をご存知でしょうか。 宜しくお願い致します。
Zuishin

2017/03/07 11:10

$Excel.Workbooks.Add と実行するとどうなりますか?
Zuishin

2017/03/07 11:11

また、$Excel と $Excel.Workbooks も見せてください。
Zuishin

2017/03/07 11:16

加工や打ち直しをすると、そこで問題個所が変わる可能性があるので、ファイルに出力してそのままコピペお願いします。個人情報は隠してもらって構いません。
SUSU0703

2017/03/07 12:23

Zuishinさん。 こんばんは。以下結果となります。宜しくお願い致します。 [$Excel.Workbooks.Add] $Excel.Workbooks.Add OverloadDefinitions ------------------- Workbook Add (Variant) ----------------------------------------------------------------------------- [$Excel] $Excel Application : Microsoft.Office.Interop.Excel.ApplicationClass Creator : xlCreatorCode Parent : Microsoft.Office.Interop.Excel.ApplicationClass ActiveCell : ActiveChart : ActiveDialog : ActiveMenuBar : System.__ComObject ActivePrinter : PDFCreator on Ne00: ActiveSheet : ActiveWindow : ActiveWorkbook : AddIns : System.__ComObject Assistant : System.__ComObject Cells : Charts : Columns : CommandBars : {System.__ComObject, System.__ComObject, System.__ComObject, System.__ComObject...} DDEAppReturnCode : 0 DialogSheets : MenuBars : System.__ComObject Modules : Names : Rows : Selection :
SUSU0703

2017/03/07 12:26

Sheets : ThisWorkbook : Toolbars : System.__ComObject Windows : System.__ComObject Workbooks : System.__ComObject WorksheetFunction : System.__ComObject Worksheets : Excel4IntlMacroSheets : Excel4MacroSheets : AlertBeforeOverwriting : True AltStartupPath : \\xxxx\SETTINGS\OFFICE2010\XLSTART AskToUpdateLinks : True EnableAnimations : False AutoCorrect : System.__ComObject Build : 7177 CalculateBeforeSave : Calculation : CanPlaySounds : True CanRecordSounds : False Caption : Microsoft Excel CellDragAndDrop : True DisplayClipboardWindow : False ColorButtons : True CommandUnderlines : xlCommandUnderlinesAutomatic ConstrainNumeric : False CopyObjectsWithCells : True Cursor : xlDefault CustomListCount : 11 CutCopyMode : 0 DataEntryMode : -4146 _Default : Microsoft Excel DefaultFilePath : \\xxx\Documents Dialogs : System.__ComObject DisplayAlerts : True DisplayFormulaBar : True DisplayFullScreen : False DisplayNoteIndicator : True DisplayCommentIndicator : xlCommentIndicatorOnly DisplayExcel4Menus : False DisplayRecentFiles : True DisplayScrollBars : True DisplayStatusBar : True EditDirectlyInCell : True EnableAutoComplete : True EnableCancelKey : xlInterrupt EnableSound : False EnableTipWizard : False FileSearch :
SUSU0703

2017/03/07 12:26

FileFind : FixedDecimal : False FixedDecimalPlaces : 2 Height : 732 IgnoreRemoteRequests : False Interactive : True Iteration : LargeButtons : False Left : -5 LibraryPath : C:\Program Files (x86)\Microsoft Office 2010\Office14\LIBRARY MailSession : MailSystem : xlMAPI MathCoprocessorAvailable : True MaxChange : MaxIterations : MemoryFree : MemoryTotal : MemoryUsed : MouseAvailable : True MoveAfterReturn : True MoveAfterReturnDirection : xlDown RecentFiles : System.__ComObject Name : Microsoft Excel NetworkTemplatesPath : ODBCErrors : System.__ComObject ODBCTimeout : 45 OnCalculate : OnData : OnDoubleClick : OnEntry : OnSheetActivate : OnSheetDeactivate : OnWindow : OperatingSystem : Windows (32-bit) NT 6.01 OrganizationName : xxx Path : C:\Program Files (x86)\Microsoft Office 2010\Office14 PathSeparator : \ PivotTableSelection : False PromptForSummaryInfo : False RecordRelative : False ReferenceStyle : xlA1 RollZoom : False ScreenUpdating : True SheetsInNewWorkbook : 3 ShowChartTipNames : True ShowChartTipValues : True StandardFont : MS Pゴシック StandardFontSize : 11 StartupPath : C:\Users\xxx\AppData\Roaming\Microsoft\Excel\XLSTART StatusBar : False TemplatesPath : \\xxx\users$\xxx\Settings\Office2010\Templates\ ShowToolTips : True Top : -6 DefaultSaveFormat : xlWorkbookDefault TransitionMenuKey : / TransitionMenuKeyAction : 1 TransitionNavigKeys : False UsableHeight : 685.5 UsableWidth : 1332 UserControl : False UserName : xxx Value : Microsoft Excel VBE : System.__ComObject Version : 14.0 Visible : False Width : 1344 WindowsForPens : False WindowState : xlMaximized UILanguage : 0 DefaultSheetDirection : -5003 CursorMovement : 1 ControlCharacters : False EnableEvents : True DisplayInfoWindow : False ExtendList : True OLEDBErrors : System.__ComObject COMAddIns : System.__ComObject DefaultWebOptions : System.__ComObject ProductCode : {90140000-0011-0000-0000-0000000FF1CE} UserLibraryPath : C:\Users\xxx\AppData\Roaming\Microsoft\AddIns\ AutoPercentEntry : True LanguageSettings : System.__ComObject Dummy101 : AnswerWizard : CalculationVersion : 145621 ShowWindowsInTaskbar : True FeatureInstall : msoFeatureInstallNone Ready : True FindFormat : System.__ComObject ReplaceFormat : System.__ComObject UsedObjects : System.__ComObject CalculationState : xlDone CalculationInterruptKey : xlAnyKey Watches : System.__ComObject DisplayFunctionToolTips : True AutomationSecurity : msoAutomationSecurityLow DisplayPasteOptions : True DisplayInsertOptions : True GenerateGetPivotData : False AutoRecover : System.__ComObject Hwnd : 133194
SUSU0703

2017/03/07 12:26

Hinstance : 796917760 ErrorCheckingOptions : System.__ComObject AutoFormatAsYouTypeReplaceHyperlinks : True SmartTagRecognizers : System.__ComObject NewWorkbook : System.__ComObject SpellingOptions : System.__ComObject Speech : System.__ComObject MapPaperSize : True ShowStartupDialog : False DecimalSeparator : . ThousandsSeparator : , UseSystemSeparators : True ThisCell : RTD : System.__ComObject DisplayDocumentActionTaskPane : False ArbitraryXMLSupportAvailable : True MeasurementUnit : 1 ShowSelectionFloaties : True ShowMenuFloaties : True ShowDevTools : True EnableLivePreview : True DisplayDocumentInformationPanel : False AlwaysUseClearType : True WarnOnFunctionNameConflict : True FormulaBarHeight : 1 DisplayFormulaAutoComplete : True GenerateTableRefs : xlGenerateTableRefStruct Assistance : System.__ComObject EnableLargeOperationAlert : True LargeOperationCellThousandCount : 33554 DeferAsyncQueries : False MultiThreadedCalculation : System.__ComObject ActiveEncryptionSession : -1 HighQualityModeForGraphics : False FileExportConverters : System.__ComObject SmartArtLayouts : System.__ComObject SmartArtQuickStyles : System.__ComObject SmartArtColors : System.__ComObject AddIns2 : System.__ComObject PrintCommunication : True UseClusterConnector : False ClusterConnector : Quitting : False Dummy22 : Dummy23 : ProtectedViewWindows : System.__ComObject ActiveProtectedViewWindow : IsSandboxed : False SaveISO8601Dates : False HinstancePtr : 796917760 FileValidation : msoFileValidationDefault FileValidationPivot : xlFileValidationPivotDefault ----------------------------------------------------------------------------- [$Excel.Workbooks] 何も表示されず
Zuishin

2017/03/07 12:47

$Excel.Workbooks が表示されないということは、そこに $null または空文字列が入っているんだろうと思います。 少なくとも COM オブジェクトは入っていません。 しかし、$Excel.Workbooks.Add は正常に表示されています。$null であれば表示されないはずです。つまり $Excel.Workbooks には COM オブジェクトが入っています。 以上より、$Excel.Workbooks と $Excel.Workbooks.Add の Workbooks は違うものを指していると思われます。一度 PowerShell を再起動し、履歴を使わずにやってみても同じ結果になりますか?
SUSU0703

2017/03/07 12:54

はい、今Powershellを再起動し履歴を使用せずに再度試してみましたが同じ結果でした。
Zuishin

2017/03/07 12:57

いえ、間違えました。私のところで Add() を呼び出さずに $Excel.Workbooks を実行すると何も表示されませんでした。これはワークブックが作られていないために空の集合とみなされたためだと思います。よって前言撤回します。
Zuishin

2017/03/07 12:58

では、$Excel.Workbooks.Add() を実行してみてください。 やっぱりエラーが出ますか?
SUSU0703

2017/03/07 13:07

はい、同じエラーが出ます。 $Excel.Workbooks.Add() [System.__ComObject] に 'Add' という名前のメソッドが含まれないため、メソッドの呼び出しに失敗しました。 発生場所 行:2 文字:1 + $Excel.Workbooks.Add() + ~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidOperation: (:) []、RuntimeException + FullyQualifiedErrorId : MethodNotFound 全く同じことをExcel2007が入ったマシンでやると正常です。Excelのバージョンによって記述を変えなければいけない、ということはあるのでしょうか。 $Excel.Workbooks.Add() Application : System.__ComObject Creator : 1480803660 Parent : System.__ComObject AcceptLabelsInFormulas : False ActiveChart : ActiveSheet : System.__ComObject Author : xxx AutoUpdateFrequency : 0 AutoUpdateSaveChanges : ChangeHistoryDuration : 0 BuiltinDocumentProperties : System.__ComObject Charts : System.__ComObject CodeName : _CodeName : CommandBars : Comments : ConflictResolution : 1 Container : CreateBackup : False CustomDocumentProperties : System.__ComObject Date1904 : False DialogSheets : System.__ComObject DisplayDrawingObjects : -4104 FileFormat : 51 FullName : Book4 HasMailer : False HasPassword : False HasRoutingSlip : False IsAddin : False Keywords : Mailer :
SUSU0703

2017/03/07 13:07

Modules : System.__ComObject MultiUserEditing : False Name : Book4 Names : System.__ComObject OnSave : OnSheetActivate : OnSheetDeactivate : Path : PersonalViewListSettings : True PersonalViewPrintSettings : True PrecisionAsDisplayed : False ProtectStructure : False ProtectWindows : False ReadOnly : False _ReadOnlyRecommended : False RevisionNumber : 0 Routed : False RoutingSlip : System.__ComObject Saved : True SaveLinkValues : True Sheets : System.__ComObject ShowConflictHistory : False Styles : System.__ComObject Subject : Title : UpdateRemoteReferences : True UserControl : UserStatus : {xxx, 07/03/2017 22:04, 1} CustomViews : System.__ComObject Windows : System.__ComObject Worksheets : System.__ComObject WriteReserved : False WriteReservedBy : xxx Excel4IntlMacroSheets : System.__ComObject Excel4MacroSheets : System.__ComObject
SUSU0703

2017/03/07 13:07

TemplateRemoveExtData : False HighlightChangesOnScreen : False KeepChangeHistory : True ListChangesOnNewSheet : False VBProject : System.__ComObject IsInplace : False PublishObjects : System.__ComObject WebOptions : System.__ComObject HTMLProject : EnvelopeVisible : False CalculationVersion : 125725 VBASigned : False ShowPivotTableFieldList : True UpdateLinks : 1 EnableAutoRecover : True RemovePersonalInformation : False FullNameURLEncoded : Book4 Password : ******** WritePassword : ******** PasswordEncryptionProvider : Microsoft Enhanced RSA and AES Cryptographic Provider PasswordEncryptionAlgorithm : AES 128 PasswordEncryptionKeyLength : 128 PasswordEncryptionFileProperties : True ReadOnlyRecommended : False SmartTagOptions : System.__ComObject Permission : SharedWorkspace : System.__ComObject Sync : System.__ComObject XmlNamespaces : System.__ComObject XmlMaps : System.__ComObject SmartDocument : System.__ComObject DocumentLibraryVersions : InactiveListBorderVisible : True DisplayInkComments : True ContentTypeProperties : Connections : System.__ComObject Signatures : System.__ComObject ServerPolicy : DocumentInspectors : System.__ComObject ServerViewableItems : System.__ComObject TableStyles : System.__ComObject DefaultTableStyle : System.__ComObject DefaultPivotTableStyle : System.__ComObject CheckCompatibility : False HasVBProject : False CustomXMLParts : System.__ComObject Final : False Research : System.__ComObject Theme : System.__ComObject Excel8CompatibilityMode : False ConnectionsDisabled : False ShowPivotChartActiveFields : False IconSets : System.__ComObject EncryptionProvider : DoNotPromptForConvert : False ForceFullCalculation : False
Zuishin

2017/03/07 13:10

もしエラーになるなら、$Excel.Workbooks.Add | tee -var method を試してください。 OverloadDefinitions ------------------- Workbook Add (Variant) と表示されたなら、$method.Invoke() としてみてください。 この場合、MethodInfo は検索済みなので、仮にエラーが出たとしても、少なくともメソッドが見つからないエラーだけは出ないはずです。
Zuishin

2017/03/07 13:14

いえ、Excel のバージョンがどうとかいう問題ではなくて、場合によってメソッドがみつかったりみつからなかったりするという完全に意味不明な状況です。Add でオブジェクトが表示されるので、Excel 側の問題ではなさそうです。
Zuishin

2017/03/07 13:25 編集

ちなみにうちでは Excel2010 しか入っていませんが、正常に動作しています。
SUSU0703

2017/03/07 13:25

Zuishinさん。ありがとうございます。再度試してみました。 $Excel = New-Object -ComObject excel.application $ExcelWorkbook = $Excel.Workbooks.Add | tee -var method ここまでを実行すると何もエラーは出ません。$ExcelWorkbookを実行しても何も表示されません。 以下全てを実行すると $Excel = New-Object -ComObject excel.application $ExcelWorkbook = $Excel.Workbooks.Add | tee -var method $TestAddin = $ExcelAddin.Application.AddIns.Add('C:\Oracle\SmartView\bin\HsTbar.xla', $True) $TestAddin.Installed = "True" $Excel.Quit() このエラーになります。 null 値の式ではメソッドを呼び出せません。 発生場所 行:3 文字:1 + $TestAddin = $ExcelAddin.Application.AddIns.Add('C:\Oracle\SmartView\bin\HsTbar. ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidOperation: (:) []、RuntimeException + FullyQualifiedErrorId : InvokeMethodOnNull このオブジェクトにプロパティ 'Installed' が見つかりません。プロパティが存在し、設定可能であることを確認してください。 発生場所 行:4 文字:1 + $TestAddin.Installed = "True" + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidOperation: (:) []、RuntimeException + FullyQualifiedErrorId : PropertyNotFound "0" 個の引数を指定して "Quit" を呼び出し中に例外が発生しました: "Exception from HRESULT: 0x800AC472" 発生場所 行:5 文字:1 + $Excel.Quit() + ~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (:) [], MethodInvocationException + FullyQualifiedErrorId : COMException
Zuishin

2017/03/07 13:28

$method.Invoke() をお願いしたんですが。 そして $ExcelAddin という見たことのない変数が出てきましたね? ややこしくなるので、新しい要素を入れず、問題は切り分けて調べましょう。
SUSU0703

2017/03/07 13:37

すみません、$method.Invoke() を入れる箇所を把握していないので、もし違ったら教えてください。 $Excel = New-Object -ComObject excel.application $ExcelWorkbook = $Excel.Workbooks.Add | tee -var method $method.Invoke() をやると null 値の式ではメソッドを呼び出せません。 発生場所 行:3 文字:1 + $method.Invoke() + ~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidOperation: (:) []、RuntimeException + FullyQualifiedErrorId : InvokeMethodOnNull が出ます。 $Excel = New-Object -ComObject excel.application $ExcelWorkbook = $Excel.Workbooks.Add | tee -var $method.Invoke() を実行すると null 値の式ではメソッドを呼び出せません。 発生場所 行:2 文字:1 + $ExcelWorkbook = $Excel.Workbooks.Add | tee -var $method.Invoke() + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidOperation: (:) []、RuntimeException + FullyQualifiedErrorId : InvokeMethodOnNull と表示されます。宜しくお願い致します。
Zuishin

2017/03/07 13:41

おかしな話ですね。$Excel.Workbooks.Add で表示されていたオブジェクトが消えてしまいました。 そしてスクリプトの中だったんですね。 スクリプトファイルを使わずコマンドラインで次のようにお願いします。 手で打たず、コピペしてください。 PowerShell のコンソールで右クリックしたらクリップボードの中身がペーストされます。 実行したら、PowerShell を終わらせずそのままにしておいてください。 $Excel = New-Object -Com Excel.Application $Excel.Workbooks.Add | tee -var method $method.Invoke()
Zuishin

2017/03/07 13:50

この三行をクリップボードにコピーして PowerShell のコンソールで右クリックして Enter を押して結果を教えてください。 ほかのことは今はなさらなくて結構です。むしろ、したら状況が変わるのでしないでください。
SUSU0703

2017/03/07 13:51

はい、コマンドでコピペして実行すると以下のようになりました。 Windows PowerShell Copyright (C) 2013 Microsoft Corporation. All rights reserved. PS C:\Windows\System32\WindowsPowerShell\v1.0> $Excel = New-Object -Com Excel.Ap plication PS C:\Windows\System32\WindowsPowerShell\v1.0> $Excel.Workbooks.Add | tee -var method PS C:\Windows\System32\WindowsPowerShell\v1.0> $method.Invoke() You cannot call a method on a null-valued expression. At line:1 char:2 + $method.Invoke() + ~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidOperation: (:) [], RuntimeException + FullyQualifiedErrorId : InvokeMethodOnNull PS C:\Windows\System32\WindowsPowerShell\v1.0>
Zuishin

2017/03/07 13:52

では次をお願いします。 $Excel.Workbooks.Add
Zuishin

2017/03/07 13:53

こちらもコピペで。ほかのスクリプトは今は封印お願いします。
SUSU0703

2017/03/07 13:54

こちらは何も表示されませんでした。 PS C:\Windows\System32\WindowsPowerShell\v1.0> $Excel.Workbooks.Add PS C:\Windows\System32\WindowsPowerShell\v1.0>
Zuishin

2017/03/07 13:56

なるほど。一番最初にお願いした時には表示されていたものが表示されなくなっています。 これはどうですか? $Excel.Workbooks.GetType()
SUSU0703

2017/03/07 13:59

このように表示されています。 PS C:\Windows\System32\WindowsPowerShell\v1.0> $Excel.Workbooks.GetType() IsPublic IsSerial Name BaseType -------- -------- ---- -------- True False __ComObject System.MarshalByR...
SUSU0703

2017/03/07 14:02

あと、関係ないかもしれませんが、当初はPowershellのVersionが3で、周りのPCよりバージョンが古いのが原因かもと思い、現在4.0に上げています。 PS C:\Windows\System32\WindowsPowerShell\v1.0> $PSVersionTable Name Value ---- ----- PSVersion 4.0 WSManStackVersion 3.0 SerializationVersion 1.1.0.1 CLRVersion 4.0.30319.36282 BuildVersion 6.3.9600.16406 PSCompatibleVersions {1.0, 2.0, 3.0, 4.0} PSRemotingProtocolVersion 2.2
Zuishin

2017/03/07 14:03

$Excel.Workbooks.Add OverloadDefinitions ------------------- Workbook Add (Variant) という表示が出たのと同じパソコンですよね?
SUSU0703

2017/03/07 14:12

はい、同じパソコンです。 再度、$Excel.Workbooks.Add だけ実行しても何も表示されませんでした。 もう一度当初に実行した以下の2行を実行してから $Excel = New-Object -ComObject excel.application $ExcelAddin = $Excel.Workbooks.Add() $Excel.Workbooks.Add の部分を実行すると、また OverloadDefinitions ------------------- Workbook Add (Variant) が表示されるようになりました。
Zuishin

2017/03/07 14:15

Add() でそのようになるわけはないんですが。 それに、$Excel = New-Object -Com Excel.Application は実行されているはずなので、再度の実行でできるようになるのも意味が分かりません。再起動しました?
SUSU0703

2017/03/07 14:23

今再起動をかけ、再度実行してみました。 Windows PowerShell Copyright (C) 2013 Microsoft Corporation. All rights reserved. PS C:\WINDOWS\system32\WindowsPowerShell\v1.0> $Excel = New-Object -Com Excel.Ap plication PS C:\WINDOWS\system32\WindowsPowerShell\v1.0> $Excel.Workbooks.Add | tee -var method OverloadDefinitions ------------------- Workbook Add (Variant)
Zuishin

2017/03/07 14:24

じゃあそのまま $method.Invoke() をお願いします。ほかのことはしないでください。
SUSU0703

2017/03/07 14:28

値が取得できました PS C:\WINDOWS\system32\WindowsPowerShell\v1.0> $method.Invoke() Application : Microsoft.Office.Interop.Excel.ApplicationCl ass Creator : 1480803660 Parent : Microsoft.Office.Interop.Excel.ApplicationCl ass AcceptLabelsInFormulas : False ActiveChart : ActiveSheet : System.__ComObject
Zuishin

2017/03/07 14:28

$Excel.Workbooks.Add() を実行してみてください。
SUSU0703

2017/03/07 14:34

このようになりました PS C:\WINDOWS\system32\WindowsPowerShell\v1.0> $Excel.Workbooks.Add() Application : Microsoft.Office.Interop.Excel.ApplicationCl ass Creator : 1480803660 Parent : Microsoft.Office.Interop.Excel.ApplicationCl ass AcceptLabelsInFormulas : False ActiveChart : ActiveSheet : System.__ComObject
Zuishin

2017/03/07 14:35

おめでとうございます。 不安定な理由がよくわかりませんが、同じ手順でできることはわかりました。 もう最初のスクリプトが動くはずです。
SUSU0703

2017/03/07 14:42

最初のスクリプト、となると $Excel = New-Object -ComObject excel.application $ExcelAddin = $excel.Workbooks.Add() $TestAddin = $ExcelAddin.Application.AddIns.Add('C:\Oracle\SmartView\bin\HsTbar.xla', $True) $TestAddin.Installed = "True" $Excel.Quit() でよろしいですか。はい、確かに動いて自動でアドインが追加されました。 教えて頂いた $Excel = New-Object -Com Excel.Application $ExcelAddin = $Excel.Workbooks.Add | tee -var method $method.Invoke() も統合したほうがよいのでしょうか
SUSU0703

2017/03/07 14:55

Zuishinさん。もう夜も遅いので今日はこのあたりで失礼します。遅くまでお付き合い頂き本当にありがとうございます。周りにPowershellに詳しい人がいないので、的確で素早い回答に本当に感謝します。 どうもありがとうございました。
Zuishin

2017/03/07 15:09

統合する必要はありません。 これは調査のためのものです。 なぜか不安定になっていて、なぜか直ったということで、理由はわかりません。 もしかしたら Excel を起動しすぎてメモリ内にたまってリソースを食っていたのかもしれませんし、ほかの理由かもしれません。 調査の結果、通常の手続きでできることがわかったので、今のところはそれでよしとしましょう。 お疲れさまでした。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問