Excelでは、フルカラーでグラフを作成できます。グラフを印刷する準備ができたら、Excelに「白黒」で印刷するように指示できます

([ページ設定]ダイアログボックスの[グラフ]タブ)。この「白黒」バージョンのグラフをエクスポートして、別のプログラムで使用できるようにする方法があるかどうか疑問に思われるかもしれません。

答えは、少なくとも直接ではなく、これを行うことはできないということです。これがなぜであるかを理解するには、「白黒印刷」機能がどのように機能するかを理解する必要があります。この機能は、プリンタードライバー(プリンター)に送信されるものにのみ影響し、実際のグラフにはまったく影響しません。印刷プレビューを使用する場合でも、実際のグラフは表示されませんが、印刷時にグラフがどのように表示されるかが表示されます。したがって、実際のグラフではなく、プリンターの出力が表示されます。

チャートの白黒バージョンをエクスポートする場合、タスクを実行する方法はいくつかあります。 1つ目は、印刷プレビューでグラフを表示し、画面キャプチャを実行することです(Alt + Print Screenを押します)。次に、画面をお気に入りのグラフィックプログラムに貼り付けて、必要に応じて修正します。

画面をキャプチャするだけでなくチャートをエクスポートする場合は、チャートの色を変更して、実際にグレースケールになり、白黒で印刷する場合と同じパターンが含まれるようにする必要があります。このアプローチでは、印刷時にグラフの変換をExcelに依存するのではなく、実際にグラフのソースを変更します。書式の変更が完了したら、グラフを「グラフテンプレート」として保存して、作成する他のグラフのパターンとして使用することもできます。

必要に応じて、マクロを使用して、カラーチャートとグレースケールチャートの表示を変換することもできます。このアプローチは、グラフで使用する色、使用しているグラフの種類、およびグラフ内のデータ系列の数に大きく依存します。以下は、最大5つのデータ系列について、データ系列の色をカラーと白黒の間で切り替えるマクロの例です。

Option Explicit Public bColored As Integer

Sub ColoredToBW()

Dim cht As Chart     Dim chtSC As SeriesCollection     Dim x As Integer     Dim iSeriesCount As Integer     Dim iColors(1 To 5, 0 To 1) As Integer     Dim iColor As Integer

'Set colors for BW series     iColors(1, 0) = 1 'Black     iColors(2, 0) = 56 'Gray-80%     iColors(3, 0) = 16 'Gray-50%     iColors(4, 0) = 48 'Gray-40%     iColors(5, 0) = 15 'Gray-25%

'Set colors for Color series     iColors(1, 1) = 55 'Indigo     iColors(2, 1) = 7 'pink     iColors(3, 1) = 6 'yellow     iColors(4, 1) = 8 'Turquoise     iColors(5, 1) = 13 'Violet

'Toggle Color/BW change 0 to 1 or 1 to 0     bColored = 1 - bColored

Set cht = ActiveChart

'check that a chart is selected     If cht Is Nothing Then         MsgBox ("Select a chart")

Exit Sub     End If

Set chtSC = cht.SeriesCollection

'Check for MIN of number of series or     'colors and only do the minimum     iSeriesCount = Application.WorksheetFunction.Min _       (UBound(iColors), chtSC.Count)



For x = 1 To iSeriesCount         'Define the color         iColor = iColors(x, bColored)



'Set the LINE color         chtSC(x).Border.ColorIndex = iColor

'Marker color         With chtSC(x)

.MarkerBackgroundColorIndex = xlNone             .MarkerForegroundColorIndex = iColor         End With     Next x End Sub

この例は、すべてのグラフタイプで機能するわけではありません。ニーズを反映するように変更する必要があります。ただし、これは独自のマクロを作成するための開始点として機能します。

注:

このページ(または_ExcelTips_サイトの他のページ)で説明されているマクロの使用方法を知りたい場合は、役立つ情報を含む特別なページを用意しました。

_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。

このヒント(10447)は、Microsoft Excel 2007、2010、2013、2016、2019、およびOffice 365のExcelに適用されます。Excelの古いメニューインターフェイス用のこのヒントのバージョンは、次の場所にあります。