• ベストアンサー

EXCEL マクロの定数にセルの値を参照できますか

EXCELの複数グラフシートから、PPへグラフの貼り付けを行いたいです。貼り付け形式がグラフにより、xlBitmapとxlPictureを別ける必要があるので、EXCELにグラフシート名と貼り付け形式(xlBitmapとxlPicture)の一覧を作成し参照させたいのですが、うまくFormat形式をセルから参照させることができません。定数は参照できないのでしょうか? Selection.CopyPicture Format:=xlBitmapのxlBitmapの部分にセルの値を参照させたい。

質問者が選んだベストアンサー

  • ベストアンサー
  • lark_0925
  • ベストアンサー率63% (37/58)
回答No.2

はっきり意味が読み取れませんが、 定数であるxlBitmapやxlPictureは、実行時には実際の数値に変換されるのでインタープリタには、xlBitmap等の文字の実態は理解できません。 ですから、セルに Xlbitmap 等と入れておいて、 Selection.CopyPicture Format:=range("a1").value 等としても文字列のxlBitmapと指定しているに過ぎません。 セルには、定数の実数値である   xlbitmapなら 2   Xlpictureばら、-4147 (これは、オブジェクトブラウザーで調べるとわかります) を指定すれば、上記のコードもうまくいくと思いますよ!! あるいは、この関係をIF文で分岐制御するなり、 名前の定義を使って工夫するなり等の方法は考えられますが・・・。 検討してみてください。

noname#49094
質問者

お礼

lark_0925さん回答ありがとうございます。 まさしくSelection.CopyPicture Format:=range("a1").value と言う感じで指定していました。   xlbitmapなら 2   Xlpictureばら、-4147 とすることで実行できました。 おかげさまで解決いたしました。感謝!!

その他の回答 (2)

  • dokinhime
  • ベストアンサー率30% (4/13)
回答No.3

定数の実際の数字は xlBitmap=2 xlPicture=-4147 です。 ですので Selection.CopyPicture Format:=Range("E13") などとして、E13のセルに 2 を入力しておけば、Selection.CopyPicture Format:=xlBitmap と同じことになります。 他の定数も Range("E13") = xlBitmap などとして、セルに表示させれば、その数字を調べることができます。

noname#49094
質問者

お礼

dokinhimeさん、dokinhime同様、適切な回答ありがとうございました。

  • hana-hana3
  • ベストアンサー率31% (4940/15541)
回答No.1

MsgBox xlBitmap MsgBox xlPicture

noname#49094
質問者

お礼

hana-hana3さん回答ありがとうございます。 質問が理解しにくく申し訳ありません。 Selection.CopyPicture Format:=xlBitmap を ワークシート”マクロ”のセル”L21”にxlBitmapと記入してあり Selection.CopyPicture Format:=Worksheets("マクロ").Range("L21").Valueと言う感じにした場合。 "PictureクラスのCopyPictureメソッドが失敗した。"とエラーになり困っております。

関連するQ&A

専門家に質問してみよう