PR

【VBA】クイック分析機能を表示する

これで楽に!?VBA活用
記事内に広告が含まれています。

こんにちは、Ryoです。
Excel2013よりクイック分析機能が加わりましたが、その機能をVBAを使って「書式」「ツールチップのみ」「グラフ」「スパークライン」「テーブル」「合計」を表示させることができますので、今回はその内容について書いていきます。

スポンサーリンク

1.サンプル概要

以下画像の表全体を選択し、QuickAnalysisプロパティをしようすることで、それぞれの分析機能を表示させます。

≪合計≫

≪テーブル≫

≪スパークライン≫

≪グラフ≫

≪ツールチップのみ≫

≪書式≫

このようにクイック分析機能を表示させることができます。

2.サンプルコード

まずクイック分析機能を表示するにはQuickAnalysisプロパティを使用すればOKです。

構文:オブジェクト.QuickAnalysis(type)

このプロパティに値を指定することで、「書式」や「グラフ」などのクイック分析機能を表示させることができます。

内容
xlTotals 合計
xlTables テーブル
xlSparklines スパークライン
xlRecommendedCharts グラフ
xlLensOnly ツールチップのみ
xlFormatConditions 書式

表示させるだけであれば、手動で表の範囲などを選択して、Application.QuickAnalysis.Show xl***でOKですが、VBAで処理するので表全体を選択するところから書いてみたところ、私の環境(Excel2016)では以下のような形でタイマー処理とプロシージャ別に記述しないと正常に表示されないようでした。

Sub Sample1()

  '表全体を選択する
  Cells(1, 1).CurrentRegion.Select

  'OnTimeメソッドで1秒後に「Sample2」プロシージャを実行
  Application.OnTime EarliestTime:=Now + TimeValue("00:00:01") _
  , Procedure:="Sample2"
 
  '※ 私の環境(Excel2016)では表全体選択を本サンプルのように記述で処理すると、
  '  OnTimeなどで1秒以上処理を遅延させ、且つプロシージャを分けることで
  '  Application.QuickAnalysis.Show ***が正常動作。(WaitメソッドではNG)
  
End Sub

Sub Sample2()

  'クイック分析機能をそれぞれ表示する
  '本機能はExcel2013以降で使用可能
  With Application.QuickAnalysis
       .Show xlTotals '「合計」
       '.Show xlTables  '「テーブル」
       '.Show xlSparklines  '「スパークライン」
       '.Show xlRecommendedCharts  '「グラフ」
       '.Show xlLensOnly  '「ツールチップのみ」
       '.Show xlFormatConditions  '「書式」
  End With
  
End Sub

先ずは表全体をCells(1, 1).CurrentRegion.Selectで選択し、次にOnTimeメソッドで1秒待ってからクイック分析機能表示を記述したSample2()を起動させています。

次にSample2()でApplication.QuickAnalysis.Show xl***でそれぞれ表示させます。

通常であれば表全体を選択して、次にQuickAnalysisプロパティを使用すれば表示できそうに思えるのですが、私の場合はツールチップのみが表示されて「グラフ」などの機能表示まで実行されませんでしたので、使用にはやや癖がありそうな感じがします。

使用環境が変われば処理結果も違うのかもしれませんので、一例として捉えてもらえればと思います。

3.まとめ

今回はExcel2013から使用できるクイック分析機能の表示について書いてみましたが、上にも書いた通り処理の都合上少し工夫が必要なのかもしれません。



何かの処理で表を集計して、その後にすぐ分析機能を使用したい場合や予め表示させたいことがあれば活用できることもありそうなので、知っておくと便利かと思います。

以上、クイック分析機能を表示する方法についてでした!今回の記事が何かの参考になれば幸いです。

Ryo

タイトルとURLをコピーしました