2015-01-11 11 views
10

私は、私のケースでは、チャートを挿入する際にマクロを記録するためにExcel 2013を使用しました。ビューコードオプションでは、以下のように私のコードの行を示していますAddChart2 VBAマクロの数値は何を表していますか?

ActiveSheet.Shapes.Addchart2(286,xl3DColumnClustered).Select 

私はない数286が何を表すか理解できないとして私を助けてください。

expression.AddChart2(Style,XlChartType,Left,Top,Width,Height,NewLayout) 

私は「286」から「285」に変更すると、グラフが青い背景で表示されます:私はAddchart2の構文は知っています。数字が100の場合はエラーが表示されます。

数値は何を表していますか?

ありがとうございます。

+2

[仕様]の欠如を強調し、非常に興味深い質問のデフォルトChartStyle(http://msdn.microsoft.comを示し/en-us/library/office/ff838167(v=office.15).aspx)。私は48のスタイル(1から48まで)があることしかわかりませんので、これは答えではないかもしれませんが(286または285を挿入できる場合)、始めるのが良い点です。しかし、[公式文書](http://msdn.microsoft.com/en-us/library/office/jj228277%28v=office.15%29.aspx)には何も記載されていないので、他の意味。 –

+1

[この記事](https://books.google.com/books?id=C-4-Es0OXeIC&pg=RA9-PT250&lpg=RA9-PT250&dq=addchart2)によると、スティールは201〜353の範囲にあるようです。+ excel + vba + style + parameter&source = bl&ots = PX7bHdDalq7CiusgKtnMd8U2Imk&hl = en&sa = X&Ei = C8myVO​​CUAsW1sAT87YLYDQ&ved = 0CDkQ6AEwBA#v = onepage&q = addchart2。%20excel%20vba%20style%20parameter&f = false) – peege

+0

上記の記事には、他のチャートスタイルや多くの情報があり、元の1-48は引き続き機能します。 – peege

答えて

0

これはあなたの質問に直接答えませんが、何が起こっているのか把握するのに役立ちます。

これは私のところでの純粋な推測ですが、文書化されていないビットフィールドだと思います。あなたが知っているかもしれないが、ビットフィールドは単なる数字を使用する方法です。したがって、イメージには8ビット(またはフラグ)になるByte変数があります。したがって、1バイトに最大8個の値を格納できます。

例: "DaysOpen"ビット1-7というフィールドがあり、その曜日に店舗が開かれていることを意味します。 (私たちは。8番目のビットを無視します)だから、店は次に、あなただけの小数にその数を変換し、我々はそれが変数であることを124

だことを見る1100

0111バイナリであろうと開いMFであればバリアントなので、バイトからロングまで64種類の異なるフラグを格納できます。サイドノートとして

(あなたが興味を持っている場合)あなたがそうのようなビットフィールドを使用することができます

Option Explicit 

Public Enum DayFlags 
    'Notice these are power of 2. 
    dfSunday = 1 
    dfMonday = 2 
    dfTuesday = 4 
    dfWednesday = 8 
    dfThursday = 16 
    dfFriday = 32 
    dfSaturday = 64 
End Enum 

Sub Example() 
    Dim openHours As DayFlags 
    'Set the flags: 
    openHours = dfMonday Or dfTuesday Or dfThursday 
    'See the binary? 
    MsgBox Right$("00000000" & Excel.WorksheetFunction.Dec2Bin(openHours), 8) 
    'Notice the order is right to left. This is call endianness. 
    'You can check for a specific flag like this: 
    MsgBox IsOpenOnDay(openHours, dfMonday) & vbNewLine & IsOpenOnDay(openHours, dfFriday) 
    'You can add a flag like this: 
    openHours = openHours Or dfFriday 
    MsgBox IsOpenOnDay(openHours, dfMonday) & vbNewLine & IsOpenOnDay(openHours, dfFriday) 
    'You can remove a flag like this: 
    openHours = openHours Xor dfFriday 
    MsgBox IsOpenOnDay(openHours, dfMonday) & vbNewLine & IsOpenOnDay(openHours, dfFriday) 
End Sub 

Private Function IsOpenOnDay(ByVal openHours As DayFlags, ByVal day As DayFlags) As Boolean 
    IsOpenOnDay = ((openHours And day) = day) 
End Function 
0

まあが、私はかつて同じような状況があったが、それらは、スタイルを基本的にグラフ化されています。私は正確なナンバリングを見つけようとしましたが、録音はあなたがここでやったのと同じようにスタイルナンバーを知る簡単な方法でした。

質問に答えるには、マクロで実装するスタイルを知るためのマクロを記録します。

6

ChartTypeのみを提供することもでき、アプリケーションはデフォルトスタイルを使用します。

Set oShp = ActiveSheet.Shapes.AddChart2(XlChartType:=xl3DColumnClustered) 
oShp.Chart.SetSourceData Source:=RngDta 

この絵はすべて(StockHLCとStockVOHLC除く)のchartTypes

enter image description here

関連する問題