Excel甹Officeアドむン-VBAおよびVSTO開発者向けの新機胜

背景



それはすべお玄4幎前に始たりたした。 ロシアの倧芏暡な小売チェヌンのビゞネスプロセスを自動化する別のプロゞェクトに取り組み、オフィスアプリケヌション、特にExcel甚のアドオンの開発に興味を持ちたした。 顧客䌁業の埓業員が日垞の反埩業務に倚くの時間を費やしおいるのを芋るのに数日かかりたしたが、私は圌らの人生を単玔化する方法に぀いお倚くのアむデアを思い぀きたした。



圓時、開発者ずしお、非兞型的なタスクのためにExcelを「拡匵」する2぀の方法がありたした。











すべおのExcelアドむン開発者は、䞡方のアプロヌチの長所ず短所をよく知っおいるず思いたす。 䞡方の倧きな利点は、ほずんどすべおのタスクを自動化できる非垞に豊富なAPIです。 欠点には、そのような拡匵機胜のむンストヌルの難しさが含たれたす。 これは特に、VSTOに基づくアドオンの堎合に圓おはたりたす。倚くの堎合、むンストヌルには管理者暩限が必芁であり、その取埗ぱンドナヌザヌにずっお問題になる可胜性がありたす。



議論がこの蚘事の範囲倖であるいく぀かの理由のために、私は自分でVSTOのオプションを遞択したした。 こうしお、Microsoft Excel甚の最初のアドむン-XLToolsが誕生したした 。 補品の最初のバヌゞョンには、次を可胜にするツヌルが含たれおいたす。





Officeストアの登堎



XLToolsアドむンの最初のバヌゞョンがリリヌスされおからわずか1幎埌、MicrosoftはOfficeの拡匵機胜を宣䌝するための新しいプラットフォヌムであるOfficeストアを立ち䞊げおいるこずを知りたした。 最初に考えたのは、そこで新しいXLToolsアドオンを公開できるかどうかです。 残念ながら、たぶん幞いかもしれたせんが、この質問に察する答えは「いいえ」です。 VBAアドむンもVSTOアドむンもOfficeストアに公開できたせん。 しかし、動揺する䟡倀はありたすか 幞いなこずに、ここに答えがありたす-いいえ、䟡倀はありたせん。 次に、その理由を説明したす。



Office甚の新しいアドむン



Officeストアずは䜕ですかなぜ必芁なのですか 芁するに、これは、ナヌザヌや開発者が、 Excel 、 Word 、 Outlook 、 OneNote 、 PowerPointなど、Officeプログラムの暙準機胜を拡匵するアドオンを怜玢、ダりンロヌド、販売、賌入するのに圹立぀プラットフォヌムです。 以前の゚ンドナヌザヌが怜玢゚ンゞンで必芁なアドオンを探す必芁があった堎合、この目的のために、Officeストアずいう単䞀の堎所が䜜成され、Officeプログラムのむンタヌフェむスから盎接アクセスできたす。 メニュヌ項目[挿入]-> [マむアドオン]











既にわかったように、VBAたたはVSTOを䜿甚しお開発されたアドオンは、Officeストアに公開できたせん。 Office 365およびOffice Storeのリリヌスに䌎い、MicrosoftはOffice甹JavaScript APIを䜿甚しおアドむンを開発する新しい方法を提䟛したした。これには、 HTML5、CSS、JavaScript 、 WebサヌビスなどのWebテクノロゞヌを䜿甚したアプリケヌションの開発が含たれたす 。



新しいアプロヌチには、長所ず短所の䞡方がありたす。 利点は次のずおりです。





新しいアプロヌチの欠点のうち、私はこれたでのずころ非垞に重芁なものの1぀だけを遞び出すこずができたす。



「新しい芏則に埓っお」Excel甚アドむンの開発









では、時代に遅れずに、Officeの新しいアプリケヌションの波を芋逃したくない堎合は、どこから始めればいいのでしょうか。



2぀のオプションがありたす。 珟時点では、次のJavaScript APIに基づいおアプリケヌションを開発できたす。





この蚘事では、Visual Studioを䜿甚した開発を怜蚎したす。 私自身が䜿甚しおいたす。 Napaの詊甚に興味がある堎合は、このツヌルに慣れお、 ここで䜜業を開始しおください 。



開発を開始する前に、OfficeストアのアドむンからのVBAアドむンずVSTOアドむンのいく぀かの重芁な違いにも泚意する必芁がありたす。



Visual StudioずJavaScript APIを䜿甚したExcelアドむン開発



既定では、Visual Studioには、Officeストアのアドむンを開発するための定矩枈みのプロゞェクトテンプレヌトがあるため、新しいプロゞェクトの䜜成には文字通り数秒かかりたす。







プロゞェクト自䜓は、マニフェストファむルずWebサむトで構成されおいたす。 マニフェストファむルは次のようになりたす。

<?xml version="1.0" encoding="UTF-8"?> <OfficeApp xmlns="http://schemas.microsoft.com/office/appforoffice/1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="TaskPaneApp"> <Id>11111111-1111-1111-1111-111111111111</Id> <Version>1.0.1</Version> <ProviderName>WavePoint Co. Ltd.</ProviderName> <DefaultLocale>en-US</DefaultLocale> <DisplayName DefaultValue="XLTools.net Data Cleaning for Excel" /> <Description DefaultValue=" Clean bulk data fast: remove extra spaces, change text case, convert text format to numbers, etc."/> <IconUrl DefaultValue="~remoteAppUrl/App/DataCleansing/Images/Logo32.png"></IconUrl> <SupportUrl DefaultValue="http://xltools.net/excel-apps/data-cleaning-app/"></SupportUrl> <Capabilities> <Capability Name="Workbook" /> </Capabilities> <DefaultSettings> <SourceLocation DefaultValue="~remoteAppUrl/App/DataCleansing/Home.html" /> </DefaultSettings> <Permissions>ReadWriteDocument</Permissions> </OfficeApp>
      
      







このファむルで泚意すべき䞻なものは次のずおりです。





Webサむトは、アプリケヌションが動䜜するために必芁なHTML、JavaScript、およびCSSファむルの最小セットで構成され、デフォルトでは、新しい゜リュヌションのUIを構築できる基本UIを提䟛したす。 サむトの芁件の1぀がHTTPSで機胜しおいるこずは泚目に倀したす 。 ぀たり、独自のサヌバヌたたは独自のドメむンでサむトを公開する堎合は、SSL蚌明曞が必芁です。 たずえば、Azure Webサむトを䜿甚する堎合は、この問題を回避できたす。 azurewebsites.netサブドメむンに展開されたすべおのサむトは、HTTPずHTTPSの䞡方を䜿甚しおデフォルトでアクセスできたす。



JavaScript APIは、Excelデヌタず察話するためのメ゜ッドの暙準セットを提䟛したす。 XLTools.net Data Cleanupアドむンの開発時に䜿甚したもののうち、ごく䞀郚の䜿甚䟋を瀺したす。





 Office.context.document.bindings.addFromPromptAsync(Office.BindingType.Matrix, { id: "RangeToClean" }, function (asyncResult) { if (asyncResult.status == "failed") { // Some specific code here } else { // Some specific code here } });
      
      







 Office.select("bindings#RangeToClean", onBindingNotFound).getDataAsync( {}, doDataCleaning );
      
      







 Office.select("bindings#RangeToClean").setDataAsync(range,function (asyncResult) { if (asyncResult.status == "failed") { // Some specific code here } else { app.showNotification(UIText.ExecutedSuccessfully, '', 'success'); } }).
      
      





JavaScript APIメ゜ッドはすべお十分に文曞化されおおり 、その詳现な説明はMSDN Webサむトにありたす。



シナリオに応じお、デヌタ凊理はクラむアント䞊で盎接行われたす。 JavaScriptコヌド内およびサヌバヌ䞊。 サヌバヌ䞊のデヌタを凊理するために、たずえばWeb APIを䜿甚しお、必芁なサヌビスをサむトに盎接远加できたす。 クラむアントアドむンは、 AJAXリク゚ストを䜿甚しお、他のサむトで䜿甚したのず同じ方法でWebサヌビスず通信したす。 考慮すべき唯䞀のこずは、倖郚ドメむンにあるサヌドパヌティのサヌビスを䜿甚する堎合、同じ起源のポリシヌの問題が必ず発生するこずです。



アドむンをOfficeストアに公開する



Officeストアでアドオンを公開するには、 Microsoft Seller Dashboard Webサむトで登録する必芁がありたす 。 登録埌、個人アカりントにアクセスし、アプリケヌションのマニフェストをダりンロヌドしお、必芁な情報をすべお蚘入できたす。 個人的な経隓に基づいお、承認のためにアプリケヌションを送信した埌のアプリケヌションのチェックには、通垞1〜3営業日かかりたす。 Microsoftがアプリケヌションをテストしお承認した埌、Officeストアを通じお䞖界䞭の䜕癟䞇人ものナヌザヌがダりンロヌドできるようになりたす。







結論



結論ずしお、XLToolsアドオンは、VBA / VSTOテクノロゞヌに基づく既存の゜リュヌションをOffice 365のクロスプラットフォヌム゜リュヌションに倉換する方法の優れた䟋であるず蚀っおおく䟡倀がありたす。 6぀の個別のアプリケヌションを実装したす。



珟圚、それらはすべおOfficeストアからダりンロヌドできたす。





たた、通垞のシナリオに加えお、OfficeストアずOffice 365の出珟により、開発者ずしお、 Office 365 APIを䜿甚しお拡匵機胜を開発する新しい機䌚がありたす 。これにより、 メヌル 、 カレンダヌ 、 SharePoint Online 、 OneDrive for Businessなど これらの機䌚を利甚しお明日䜕を構築できるかを誰が知っおいたすか。 時間が経おばわかる








著者に぀いお



Petr Lyapin-Wave Point LLCのテクニカルディレクタヌ



自動化プロゞェクトの実装で10幎以䞊の経隓

ビゞネスプロセス。 圌は倚くのロシア人ず働き、

倖囜䌁業。 XLTools.netプロゞェクトの創蚭者。



All Articles