マリメッコ グラフィック グラフのインポート

マリメッコ グラフィック グラフとそのデータをthink-cellに簡単にインポートできます。

マリメッコ グラフィック グラフをthink-cellにインポート

このImport Mekko Graphics to think-cell ツールは、マリメッコ グラフィック グラフをthink-cell グラフに変換します。インポーターツールを使用する上でマリメッコ グラフィックをインストールする必要はありません。

マリメッコ グラフィック グラフをthink-cellにインポートするには、次の手順に従います。

  1. PowerPointでは、スライドにある1つまたは複数のマリメッコ グラフィック グラフ、またはマリメッコ グラフィック グラフが含まれているスライドを選択します。
  2. リボンで、think-cell > Elements > Tools Tools Menu icon > Import Mekko Graphics to think-cellまたはInsert > think-cell > Tools Tools Menu icon > Import Mekko Graphics to think-cellを選択します。

Import Mekko Graphics to think-cellを選択すると、think-cellは選択したマリメッコ グラフィック グラフをthink-cellのグラフに置き換えます。その他のスライドのコンテンツはすべて同じままです。マリメッコ グラフィック グラフを置き換えた各スライドの後に、think-cellはオリジナルのマリメッコ グラフィック グラフでバックアップスライドを挿入します。

以下の例外を除き、ほとんどのマリメッコ グラフィック グラフをthink-cellにインポートできます。

  • ガントチャート、浮動棒グラフ、水平浮動棒グラフ
  • Harveyボールなどのその他のマリメッコ グラフィック要素

マリメッコ グラフィック グラフまたは要素をインポートできない場合は、think-cellにメッセージが表示されます。

データ行または列を含むグラフのインポート

マリメッコ グラフィック グラフにデータ行またはデータ列がある場合、think-cellはそのグラフをデータテーブルを含むthink-cellグラフとしてインポートします(データ表のあるグラフを参照)。マリメッコ グラフィック グラフは、データテーブルとグラフの両方で同じデータを表す場合があります。think-cellは現在、データテーブルとグラフの両方で同じデータを表すことはサポートされていません。マリメッコ グラフィック グラフがデータテーブルとグラフの両方で同じデータを表す場合、think-cellはデータテーブルなしでそのグラフをインポートします。

インポートされたグラフのスタイルと書式設定

think-cellはマリメッコ グラフィック グラフのスタイルと書式設定をインポートしません。しかし、マリメッコ グラフィック グラフをインポートした後は、think-cellでグラフのスタイルと書式設定を簡単に再作成できます。

スタイルグラフ

think-cellがマリメッコ グラフィック グラフをインポートすると、インポートされたグラフはアクティブなthink-cellスタイルファイルのスタイルと書式設定を採用します(Set up think-cell style filesを参照)。インポートしたグラフを他のthink-cellグラフと同様に書式設定およびスタイル設定することができます(グラフのスタイルとフォーマットを参照)。

次の図は、グラフのコンテキストメニューを使用してインポートしたグラフにY軸を追加する方法を示しています。

Use think-cell's context menu to add axis

数値の書式設定

マリメッコ グラフィック グラフの数値の書式設定のほとんどはthink-cellグラフにインポートされません。think-cellで数値の書式設定を簡単に変更できます(グラフラベルのフォーマットを参照)。

次の図は、インポートされたグラフに元のマリメッコ グラフィック グラフの通貨番号の書式設定をミニツールバーを使用して適用する方法を示しています。

マリメッコ グラフィック グラフとインポートしたグラフを比較して、互いに一致しているか確認することをお勧めします。元のスライドとバックアップスライドを切り替えながら比較し、変更が必要であればインポートしたグラフに変更を加えます。インポートされたグラフに問題がなければ、バックアップスライドを削除できます。

インポートされたグラフデータを編集

think-cellはそのデータをマリメッコ グラフィック グラフからインポート済みのグラフのデータシートにインポートします。インポートしたグラフのデータは、他のthink-cellグラフのデータと同様に編集できます(要素データシートの概要を参照)。

非表示の系列またはカテゴリを表示

think-cellは、インポートされたグラフのデータシートの非表示行または列として、マリメッコ グラフィック グラフの非表示系列または非表示カテゴリからデータをインポートします。インポートしたグラフに非表示の系列またはカテゴリを表示するには、グラフのデータシートで非表示のデータを含む列または行を選択し、その選択を右クリックしてUnhideを選択します。詳細については、Microsoftサポートをご覧ください。

インポートプロセスを自動化する

Windowsのみ

Windowsでは、think-cell API関数を使用してマリメッコ グラフィック グラフをプログラムでthink-cellにインポートするかそれらを検査できます。ImportMekkoGraphicsChartsはマリメッコ グラフィック グラフをthink-cell グラフに置き換えます。GetMekkoGraphicsXMLはマリメッコ グラフィック グラフのXML定義を抽出します。

ImportMekkoGraphicsCharts

内容

この関数は、渡された図形の配列内のすべてのマリメッコ グラフィック グラフを同等のthink-cell グラフに置き換えます。図形はすべて、同じスライド上になくてはなりません。スライドを変更する前に、この関数は未変更のスライドのコピーを作成し、変更されたバージョンの直後に挿入します。

配列にマリメッコ グラフィック グラフが含まれていないなどの理由でスライドが変更されなかった場合、この関数はNothing/nullを返します。それ以外の場合、この関数はスライドの未修正コピーへの参照を返します。

VBA

署名
tcPpAddIn.ImportMekkoGraphicsCharts ( _
    ashp As PowerPoint.Shape() _
) As PowerPoint.Slide

この例を使用するには、PowerPointのモジュールに追加します。詳細については、アプリケーション用の Visual Basicをご覧ください。

プレゼンテーションでImportAllを実行すると、プレゼンテーション内のスライドが検証され、表示されているすべてのマリメッコ グラフィック グラフが同等のthink-cellグラフに置き換えられ、マリメッコ グラフィック グラフを含む各スライドのコピーが作成されてからそれが変更されます。

Option Explicit

Sub ImportAll()

    ' Get reference to think-cell Object

    Dim tcPpAddIn As Object
    Set tcPpAddIn = Application.COMAddIns("thinkcell.addin").Object

    ' Iterate over copy of original Slides to avoid
    ' iterating over copies inserted by ImportMekkoGraphicsCharts again

    Dim SlidesCopy As New Collection
    Dim Slide As PowerPoint.Slide
    For Each Slide In ActivePresentation.Slides
        SlidesCopy.Add Slide
    Next Slide
    
    For Each Slide In SlidesCopy
    
        ' Construct Array containing only visible shapes on slide
        
        Dim visibleShapes() As PowerPoint.Shape
        ReDim visibleShapes(1 To Slide.Shapes.Count)
        Dim shapeIndex As Long
        For shapeIndex = 1 To Slide.Shapes.Count
            If Slide.Shapes(shapeIndex).Visible Then
                Set visibleShapes(shapeIndex) = Slide.Shapes(shapeIndex)
            End If
        Next shapeIndex
        
        ' Pass Array to ImportMekkoGraphics and store return value
        
        Dim CopySlide As PowerPoint.Slide
        Set CopySlide = tcPpAddIn.ImportMekkoGraphicsCharts(visibleShapes)
        
        ' If Slide was modified...
        If Not CopySlide Is Nothing Then
        ' ... do things with copy of unmodified slide
        End If
    Next Slide
End Sub

C#

署名
PowerPoint.Slide tcPpAddIn.ImportMekkoGraphicsCharts(
    PowerPoint.Shape[] ashp
);

この例では、C# PowerPoint VSTO Add-in プロジェクトテンプレートで、このメソッドをThisAddInクラスに追加します。詳細については、C#アドイン開発をご覧ください。

private void ImportAll(PowerPoint.Presentation presentation)
    {
        var tcPpAddIn = presentation.Application.COMAddIns.Item("thinkcell.addin").Object;
        foreach (PowerPoint.Slide slide in presentation.Slides.Cast<PowerPoint.Slide>().ToList())
        {
            PowerPoint.Slide slideCopy = tcPpAddIn.ImportMekkoGraphicsCharts(
                slide.Shapes.Cast<PowerPoint.Shape>().ToArray()
            );
        }
    }

開いているプレゼンテーションごとにImportAllを実行するには、ThisAddIn_Startupメソッドに以下の行を追加します。

Application.PresentationOpen += new PowerPoint.EApplication_PresentationOpenEventHandler(ImportAll);

GetMekkoGraphicsXML

内容

この関数は、shp内のマリメッコ グラフィック グラフのXMLコードを文字列として返します。渡された形状は変更されません。

shpがマリメッコ グラフィック グラフではない場合、E_INVALIDARG (0x80070057)エラーが発生します。

VBA

署名
tcPpAddIn.GetMekkoGraphicsXML ( _
    shp As PowerPoint.Shape _
) As String

この例を使用するには、PowerPointのモジュールに以下のコードを追加します。詳細については、アプリケーション用の Visual Basicをご覧ください。

Option Explicit

Sub GetMekkoGraphicsXMLOfAllShapes()

    ' Get reference to think-cell Object

    Dim tcPpAddIn As Object
    Set tcPpAddIn = Application.COMAddIns("thinkcell.addin").Object

    ' Go through the slides in the presentation and
    ' output the XML of each Mekko Graphics chart on the slide
    ' to the debug console

    Dim slide As PowerPoint.slide
    For Each slide In Application.ActivePresentation.Slides
        Dim shape As PowerPoint.shape
        For Each shape In slide.Shapes
            On Error Resume Next ' skip over shapes that are not Mekko Graphics charts
            Debug.Print tcPpAddIn.GetMekkoGraphicsXML(shape)
        Next shape
    Next slide
End Sub

C#

署名
string tcPpAddIn.GetMekkoGraphicsXML(
    PowerPoint.Shape shp
);

この例を使用するには、例にあるConsole AppProgram.csのコードを置き換えます。

この例ではMicrosoft PowerPoint 16.0 Object LibraryおよびMicrosoft Office 16.0 Object Libraryへの参照が必要です(詳しくはC#を参照)。

アプリケーションを実行すると、C:\Samples\GetMekkoGraphicsXML\presentation.pptxのプレゼンテーションが実行され、プレゼンテーションに含まれるマリメッコ グラフィック グラフのXMLがコンソールに出力されます。

using PowerPoint = Microsoft.Office.Interop.PowerPoint;
using Office = Microsoft.Office.Core;

namespace Sample
{
    class Program
    {
        static void Main()
        {
            var ppapp = new PowerPoint.Application();
            var presentation = ppapp.Presentations.Open(
                "C:\\Samples\\GetMekkoGraphicsXML\\presentation.pptx",
                /*ReadOnly*/Office.MsoTriState.msoTrue,
                /*Untitled*/Office.MsoTriState.msoTrue,
                /*WithWindow*/Office.MsoTriState.msoFalse
            );

            var tcPpAddIn = ppapp.COMAddIns.Item("thinkcell.addin").Object;
            foreach (PowerPoint.Slide slide in presentation.Slides)
            {
                foreach (PowerPoint.Shape shape in slide.Shapes)
                {
                    string xml = tcPpAddIn.GetMekkoGraphicsXML(shape);
                    Console.WriteLine(xml);
                }
            }

            presentation.Close();
            ppapp.Quit();
        }
    }
}