掲載参考 EXCEL ファイルダウンロード
円グラフ.xlsm
※Private Sub Workbook_Open( ) の開き方

VBAのプロジェクトエクスプローラーを開いて、その中のThisWorbookを
ダブルクリックすると、プログラムが開きます。

intMon=Sheets("menu").Range("G2") ' intMonは当月の月数値
' 本来なら、当月が何月かをEドライブの[当月日付基準.xls]から
' 取得するのだが、このファイルでは省略しているので、手動で
' G2に入力している。
Dim intMon As Integer ' intMonは数値なのでIntegerと定義する。
If intMon=7 Then strMon="E" ' menuの G2 が 7 なのでstrMonは E
になる。
Dim strMon As String ' strMonは文字なのでStringと定義する。
Sheets("売上高表").Select
intUri(1)=Range("I6") ' intUri(1)は配列の1番目を指している。
intUri(2)=Range("I7")
intUri(3)=Range("I8")
Dim intUri(1 To 13) As Long ' intUri配列の個数を、1番から13番まで使用すると定義している。
' As Longは、数値の桁数が多い場合もあるのでLongにしている。
' Integerより多い桁数を使用できる。
Sheets("機種別円グラフ").Select
Range("strMon & "7").Value=intUri(1) ' strMonはEだから、E7にintUri(1)の値を書く。
Range("strMon & "8").Value=intUri(2)
Range("strMon & "9").Value=intUri(3)
Range(strMon & "7:" & strMon & "18).Copy '
E7からE18までをコピーする。
Range("D22").Select
Slection.PasteSpecial Past:=xlPastValues, Operation:=xlNone,SkipBlanks
_
:=False, Transpose:=False
' 値だけを貼り付ける。
' 文章が長くて改行したい場合は、[半角スペース]、[半角]で[Shift]を押して[ろ]、と
' [半角スペース]を入れて[Enter]を押す。
Application. CutCopyMode=False ' コピーモードの解除

Private Sub Workbook_Open( ) ' ファイルを開いたときに実行する。
Application.ScreenUpdating=False ' 現在の選択位置から、カーソルが動かないで以後実行する。
Call 機種別売上円グラフ作成 ' サブプログラムを実行する。
Application.ScreenUpdating=True ' 現在の位置から動いてもよい。
Sheets("menu").Select ' 編集などをして、他の場所に保存されていても
Range("A1").Select ' menuのA1にカーソルがあるようにしている。
End Sub
グラフデータは、上の表が月別データで、下の表が累積データである。
尚、グラフの作成手順は「準備編」を参照してください。
このシートは、メニューシートである。[機種別円グラフ]シートのグラフをコピーした
もので、[機種別円グラフ]シートのグラフが変化するとこのグラフも同時に変化する。
だから、ファイルを開いたときには、このシートを見ることになる。
この表は、グラフデータの基になる売上高表である。
このシートは、データの記入表と月罰売上高の機種比率と年間累積グラフである。
● このグラフは、ファイルを開いたときに、Eドライブから売り上げデータを取得して機種別に分類し、
売上高表を作成して、それを基に円グラフを自動更新する。
尚、売上高表に転記までの処理は、複合グラフの作成と同じなので省略する。
実践コース
売上高の機種別分類円グラフの自動作成
実際に使っているシステムの内容で解説
EXCEL VBA 講座