マリメッコ グラフィック グラフのインポート
- ホーム
- リソース
- ユーザーマニュアル
- think-cell グラフ:データ可視化
- 定量グラフ
- マリメッコ グラフィック グラフのインポート
マリメッコ グラフィック グラフとそのデータをthink-cellに簡単にインポートできます。
マリメッコ グラフィック グラフをthink-cellにインポート
このImport Mekko Graphics to think-cell ツールは、マリメッコ グラフィック グラフをthink-cell グラフに変換します。インポーターツールを使用する上でマリメッコ グラフィックをインストールする必要はありません。
マリメッコ グラフィック グラフをthink-cellにインポートするには、次の手順に従います。
- PowerPointでは、スライドにある1つまたは複数のマリメッコ グラフィック グラフ、またはマリメッコ グラフィック グラフが含まれているスライドを選択します。
- リボンで、think-cell > Elements > Tools
> Import Mekko Graphics to think-cellまたはInsert > think-cell > Tools
> 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軸を追加する方法を示しています。
数値の書式設定
マリメッコ グラフィック グラフの数値の書式設定のほとんどはthink-cellグラフにインポートされません。think-cellで数値の書式設定を簡単に変更できます(グラフラベルのフォーマットを参照)。
次の図は、インポートされたグラフに元のマリメッコ グラフィック グラフの通貨番号の書式設定をミニツールバーを使用して適用する方法を示しています。
マリメッコ グラフィック グラフとインポートしたグラフを比較して、互いに一致しているか確認することをお勧めします。元のスライドとバックアップスライドを切り替えながら比較し、変更が必要であればインポートしたグラフに変更を加えます。インポートされたグラフに問題がなければ、バックアップスライドを削除できます。
インポートされたグラフデータを編集
think-cellはそのデータをマリメッコ グラフィック グラフからインポート済みのグラフのデータシートにインポートします。インポートしたグラフのデータは、他のthink-cellグラフのデータと同様に編集できます(要素データシートの概要を参照)。
非表示の系列またはカテゴリを表示
think-cellは、インポートされたグラフのデータシートの非表示行または列として、マリメッコ グラフィック グラフの非表示系列または非表示カテゴリからデータをインポートします。インポートしたグラフに非表示の系列またはカテゴリを表示するには、グラフのデータシートで非表示のデータを含む列または行を選択し、その選択を右クリックしてUnhideを選択します。詳細については、Microsoftサポートをご覧ください。
インポートプロセスを自動化する
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
);
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 AppのProgram.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();
}
}
}