• ベストアンサー

Excel VBA 文字描画

Excelで、ユーザーフォームに対して 文字をグラフィック描画する方法を教えてください。 また、ラインを描画する方法も。

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

  • ベストアンサー
  • mitarashi
  • ベストアンサー率59% (574/965)
回答No.2

昔やった事がありますが、ここで簡単に説明できるスキルはありません。概要をお話すると、ユーザーフォーム上に、WindowsAPIを用いて、初期のWin32プログラミングさながらに、(C/C++で無いために、構造体や定数に、それ以上の苦労をしながら)描画する必要があります。また、ユーザーフォームに直に描画すると、Windowが隠れると消えてしまいますので、Memory上で描画して、適宜ユーザーフォームの画像に転送するといった操作も必要になります。 参考URLでやっている様な事を、VBA上で組む必要があります。 http://www.kumei.ne.jp/c_lang/sdk/sdk_23.htm それでもやってみたいなら、 Excel VBA アクションゲーム作成入門 を買うと良いと思います。自分では購入した訳ではありませんが、目次を紹介いたします。 第8章 APIで動かすゲームを作成しよう 8-1 Windows API描画方式のゲームとは <Windows API描画方式の概要> 8-2 Windows APIを使って描画できるしくみとは <基本図形の描画> 8-3 ユーザーフォーム上にグラフィックを描画するには <デバイスコンテクスト> 8-4 ペンやブラシを使ってキャラクタや背景を描画するには <ドロー系 API関数> 8-5 キャラクタと背景をきれいに重ね合わせるには <画像転送系 API関数> 著者の一人のサイトはこちら。 http://www.geocities.co.jp/SiliconValley-Cupertino/8748/ ソースコードが自由に見られます。APIの部分はクラスにして扱い易くしている様ですが、深く読んではおりません。

その他の回答 (1)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.1

私はかつて、 http://questionbox.jp.msn.com/qa4672384.htmlで しかしエクセルVBAでユーザーフォームに線を描くことは結構難しいと思う。 直線は使えるコントロールとして提供されていないために。 WEBで「UserForm 線を描く」で照会してみてください ​http://www.keep-on.com/excelyou/2001lng4/200105/01050014.txt​ のようにAPIを使わないと出来ないのではないでしょうか。 VBAでAPIを使わないと出来ない課題は、「VBAでは出来ない」と言う範疇だと思いますが。 今回 http://www.keep-on.com/excelyou/2001lng4/200105/01050014.txt のコードを実行するとユーザーフォームに円がかかれることを確認しました。 >文字をグラフィック描画する方法 はどういうイメージ(考え方、必要性)なんでしょうか。 ラベルコントロールに文字を書くのとの違い(どういうコードになるかのコードとは離れて)は?

g1220
質問者

補足

早速の回答ありがとうございます。 リンク先、参考にさせていただきます。 >>文字をグラフィック描画する方法 >はどういうイメージ(考え方、必要性)なんでしょうか。 についてですが、VB6で言うところの、 「Me.Print "いろは"」と同等の事を行いたいのです。

関連するQ&A