Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


3393 / 13644 ツリー ←次へ | 前へ→

【62489】Axisの使い方 りった 09/7/25(土) 12:59 質問[未読]
【62491】Re:Axisの使い方 kanabun 09/7/25(土) 13:49 発言[未読]
【62530】Re:Axisの使い方 りった 09/7/28(火) 23:13 お礼[未読]

【62489】Axisの使い方
質問  りった  - 09/7/25(土) 12:59 -

引用なし
パスワード
   下記、エラーになる理由と解決方法をご教示頂けますでしょうか?
・出来れば、Axisを変数に入れたい。(下記例では、Withで書いても良いんですけど)
・メンバ自動表示を使いたいので、Variantは使いたくない。


Sub グラフ範囲変更()
 Dim co As ChartObject
 Dim c As Chart
 Dim a As Axis
 Dim v As Variant
 
 For Each co In Sheet1.ChartObjects
  If co.Left < 50 Then
   Set c = co.Chart
   c.Axes(xlCategory).MinimumScale = "2009/8/1" ' 正常動作
   c.Axes(xlCategory).MaximumScale = "2009/8/31"
   
   Set v = co.Chart.Axes(xlCategory)
   v.MinimumScale = "2009/8/1" ' 正常動作
   v.MaximumScale = "2009/8/31"
   
   Set a = co.Chart.Axes(xlCategory)
   a.MinimumScale = "2009/8/1" ' ☆「型が一致しません」エラー☆
   a.MaximumScale = "2009/8/31"
  End If
 Next
End Sub

【62491】Re:Axisの使い方
発言  kanabun  - 09/7/25(土) 13:49 -

引用なし
パスワード
   ▼りった さん:
>   Set v = co.Chart.Axes(xlCategory)
>   v.MinimumScale = "2009/8/1" ' 正常動作
>   v.MaximumScale = "2009/8/31"
>   
>   Set a = co.Chart.Axes(xlCategory)
>   a.MinimumScale = "2009/8/1" ' ☆「型が一致しません」エラー☆
>   a.MaximumScale = "2009/8/31"

グラフのX軸スケールは 単位が 日付となっているはずですから、
   a.MinimumScale = #2009/8/1#
   a.MaximumScale = #2009/8/31#
とか、
数値(日付)で渡せば通るはずですけど。

逆に、
>   Set v = co.Chart.Axes(xlCategory)
のばあいは、なぜ、通るのか分かりません。
Variant型だから、
データ型の自動キャストが行われてるのかしら?

【62530】Re:Axisの使い方
お礼  りった  - 09/7/28(火) 23:13 -

引用なし
パスワード
   回答ありがとう御座います。
ご指摘のとおりの対応で解決しました。
Axisとは全然関係ないところで間違えてたんですね。 (^^;

3393 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free