• ベストアンサー

EXCEL2002VBAのピクチャボック内に絵を描きたい

基本的な質問ですみません。 EXCEL2002のVBAで、Form内のピクチャボック内に 直線、四角、円などの絵を描きたいのですが、 やり方がわかりません。 またEXCEL2002のVBAとEXCEL2003のVBAはコマンドとか かなり変わっているのでしょうか?

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

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

こんにちは。Wendy02です。 >ImageBoxでした。 >ここには図形描画はできないのでしょうか? 単に読み込むだけのものですから、それは出来ないと思います。 Office VBAでは分かりません。

その他の回答 (2)

  • KenKen_SP
  • ベストアンサー率62% (785/1258)
回答No.3

> ここには図形描画はできないのでしょうか? 可能は可能ですけど.... Selection.CopyPicture xlScreen, xlBitmap これでクリップボードにビットマップとしてコピーされます。セルやシェープ でも構いません。 次にクリップボード内のビットマップを何らかの方法で、画像ファイルとして 書き出してリダイレクトするか、または、OleCreatePictureIndirect API で Picture オブジェクトを直接生成したものを Image コントロールの Picture プロパティーにセットします。 かなり面倒ですが、確かネット上でクラスモジュールが公開されていた気が します。 OleCreatePictureIndirect VB あたりで検索してみて下さい。

murano47
質問者

お礼

ご回答ありがとうございます。 やはり図形描画はVBでやった方がいいということでしょうね?

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.1

こんにちは。 >EXCEL2002のVBAで、Form内のピクチャボック内に 探してみたけれど、PictureBox が、見つからないのですが。 VBのPictureBoxのアイコンは、Excelでは、ImageBox です。 もし、ありましたら、すみません、私が知らないだけです。 VB や .Net では、おなじみなのですが、VBAにもワークシートにもありませんので、私は、以前、グラフの散布図を代用したことがあります。私は使ったことはありませんが、Web コンポーネントのChart コントロールが代用になるかもしれません。 オートシェイプは考え方が違うので、他のVBのコードとの互換性が取れません。(できないというわけではありませんが。) >またEXCEL2002のVBAとEXCEL2003のVBAはコマンドとかかなり変わっているのでしょうか? もしかしたら、あるのかもしれません。Excel2002を知らないので分かりませんが、私個人は、基本的な仕様自体を別として、Excel2000 からですが、グラフ関係は、互換性があるようで、細かいところが違うので、かなり困っています。また、あまり使わないメソッドですが、.Cut の仕様が違うので、戸惑います。他は、Office Migration (マイグレーション)で検索して調べてください。邦訳は、プロジェクト A が行っています。

murano47
質問者

お礼

ご回答ありがとうございます。 ImageBoxでした。 ここには図形描画はできないのでしょうか?

関連するQ&A

  • excel2000のVBAについて

    excel2000でコマンドボタン(command1)をclickすると VBAの command1_click関数の処理をするという マクロをVBAで作成したいのですが、 (1)excelシート上にコマンドボタンの作成方法 を教えてください

  • EXCEL-VBAでコマンドボタンに条件を追加したい

    EXCEL-VBAでコマンドボタンを実行出来る 条件を追加したいです。 初心者なので基本的な質問ですみませんが、 よろしくお願いします。

  • AccessのVBAの教本を探しています

    VBAはEXCELで結構使うのですが、データ量がEXCELでは処理しきれないので、AccessのVBAでデータ処理をやりたいのですが、基本事項とコマンドを解説した適当な教材を探しています。どなたか紹介いただけないでしょうか。

  • visual basic 6.0 ⊂ Excel2003のVBA?

    visual basic 6.0 ⊂ Excel2003のVBA? visual basic 6.0 で出来ることは、Excel2003のVBAでも出来ますか? visual basic 6.0 で出来ることと、 Excel2003のVBAで出来ることの違い(差分)について知りたいのですが、 どなたかご存知でしょうか。大雑把な回答でも結構です。 宜しくお願い致します。

  • Excel2011のVBAについて教えてください。

    初めて質問します。 Excel2011forMACでVBAを使いBOOKを指定してクローズさせたいのですが、 エラー1004が起こりファイルを閉じることができません。 作成したVBAは以前にWindowsXP、Excel2000で作成したものを修正したものだったためなのではないかと思い、 改めてExcel2011forMACで下記ように、コマンドボタンをクリックすると"test.xlsx"を閉じるだけのテストを行いましたが同じエラーが発生します。 Private Sub CommandButton1_Click() Windows("test.xlsx").Close  End Sub 実行すると『実行時エラー'1004' _ オブジェクト'Close'のメソッド'Window'が失敗しました。』となります。 ちなみに、WindowsをWorkbooksにしても同様のエラーが発生しました。 Workbooksではファイルを指定しなければエラーは発生しないのですが、できれば1つのファイルを開いた状態にしておきたいと思っています。 このエラーの解消方法を教えていただけませんか。 それとも、MACでは個別にファイルを閉じることはできないのでしょうか。 Excel2011を使っているMAC OS Xのバージョンは10.6.7です。 VBAについては、初心者レベルで常にヘルプとマクロの記録を頼りになんとか作成しています。さらに、MACでVBAを使ったのが初めてで、この事象が一般的に知られていることなのかわかりません。いろいろ調べて同じような事例が見つけられなかったので質問させていただきます。 よろしくお願いします。

  • excel2003と他バージョンの違い(VBA)

    エクセルのVBAをこれから学習しようと考えております。 学習の目的は仕事のためなのですが、 職場のバージョンはexcel2003です。 そのためexcel2003のvbaを学習しようと考えて いるのですが・・・。 いづれは職場のexcelのバージョンも2013などの最新に なることも頭の隅にあるため、どのバージョンでVBAを 学ぶべきか悩んでおります。 EXCEL2003でのVBAで覚えたスキルは、 EXCEL2007やEXCEL2013のVBAでもほとんど通用しますか? 宜しくお願い致します。

  • Excel2010 VBA

    Excel2010でVBAのフォームを使って「コマンドボタン」をクリックしたときにフォーム入力した内容をデータ(リスト)に転記(反映)させたいのですが どのようにしたらいいでしょうか? コマンドボタンの作り方は分りましたがそのマクロを実行する内容(コード)の作り方がいまいちわかません ちなみにデータ(リスト)は上から順番に空白の列を埋められていけばいいです よろしくお願いします

  • Excel2000とExcel2002のVBAの違いについて。

     以前、このカテゴリーにて、Excel2000におけるVBAのマクロを教えてもらったのですが、そのマクロ入力済みエクセルファイルをExcel2002へ移植したら、上手くVBAが働きません。  具体的にいうと、シート1に入力したデータの履歴を、シート2にて保存していくマクロなのですが、Excel2002では履歴のシートに上書きしていくことがあります。(たまに発生する)  Excel2000ではキチンと履歴のセルが全て残ります。  どなたか、この不具合を認識しておられる方。もしくは、対策をご存知の方がいらっしゃいましたら、教えてください。  

  • Excel2000でVBAをやりたいのですが、お勧めの入門書は?

    はじめまして。 現在Excel2000を使用しています。それで、VBAでプログラミングしたいと思い入門書を探しているのですが、どれもExcel2003対応になっています。Excel2000を使用してExcel2003対応の入門書でもVBAを学べるのでしょうか?もし 無理ならば、Excel2000対応のVBAの定評のある入門書をどなたかご存知でしょうか?ご教授お願いします。

  • VB6とExcel2003VBAの処理の違い

    以前エクセル2003VBAで作ったプログラムをVB6に現在移植中です。 その中で基本的なことかも知れないのですが処理の方法が違う様で のっけからつまづいています。 Private sub TEST() Form1.Show If Form1.Text1.Text = 1 Then Form2.Show Else Form3.Show End If End Sub と、いったプログラムをコディングした場合、 Excel2003VBAではForm1からの入力を待ってから次の処理 (If Form1.Text1.Text = 1 Then・・・・)に進むのですが VB6はForm1を表示してからすぐに次の処理 (If Form1.Text1.Text = 1 Then・・・・)に進んでしまいます。 何か設定なのでしょうか? 尚、当方VB6は超がつくド素人です。 どうか、優しく教えてください。 お願いいたします。

専門家に質問してみよう