ベストアンサー Excel VBA 文字描画 2009/05/27 22:42 Excelで、ユーザーフォームに対して 文字をグラフィック描画する方法を教えてください。 また、ラインを描画する方法も。 みんなの回答 (2) 専門家の回答 質問者が選んだベストアンサー ベストアンサー mitarashi ベストアンサー率59% (574/965) 2009/05/28 00:00 回答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の部分はクラスにして扱い易くしている様ですが、深く読んではおりません。 広告を見て全文表示する ログインすると、全ての回答が全文表示されます。 通報する ありがとう 0 その他の回答 (1) imogasi ベストアンサー率27% (4737/17070) 2009/05/27 23:39 回答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 のコードを実行するとユーザーフォームに円がかかれることを確認しました。 >文字をグラフィック描画する方法 はどういうイメージ(考え方、必要性)なんでしょうか。 ラベルコントロールに文字を書くのとの違い(どういうコードになるかのコードとは離れて)は? 質問者 補足 2009/05/27 23:50 早速の回答ありがとうございます。 リンク先、参考にさせていただきます。 >>文字をグラフィック描画する方法 >はどういうイメージ(考え方、必要性)なんでしょうか。 についてですが、VB6で言うところの、 「Me.Print "いろは"」と同等の事を行いたいのです。 広告を見て全文表示する ログインすると、全ての回答が全文表示されます。 通報する ありがとう 0 カテゴリ パソコン・スマートフォンソフトウェアオフィス系ソフト 関連するQ&A Excelのフォームに描画 エクセルのフォームに線やボックスを描画することって出来ますか? どなたか?詳しい方いらっしゃいましたら教えて頂けないでしょうか? Excelでの図形の描画 Visual Basicでフォームに図形を直接描画できる様に、Excelでオートシェイプなどのオブジェクトを使用しないでシートに対して直接、図形(線や円など)を描画する事は可能でしょうか? エクセル2003VBAにて、 エクセル2003VBAにて、 ユーザーフォームのラベルへ処理状況を表示したいのですが、 マクロ実行中はユーザーフォームに処理が渡されないのか以下のコードが反映されません。 そこでDoEventsを入れてみたのですが、 やっぱりラベルに以下の文字が反映されません。 どなたかよい解決方法を御存じないでしょうか? 教えてください。よろしくお願いいたします。 DoEvents UserForm1.Label9.Caption = "行数確認中です..." 携帯料金を賢く見直す!格安SIMと端末選びのポイントは? OKWAVE コラム エクセルVBAの質問です エクセルユーザーフォームをモードレスで起動した状態で、セルを手動で操作しユーザーフォームをクリックしたらマクロを実行する。 ということをしたいです。 順を追って書くと (1)ユーザーフォームを起動(モードレスで) (2)A1セルに文字を直接打ち込む(ユーザーフォームが選択されていない状態) (3)ユーザーフォームをクリック(ユーザーフォームを選択)したら指定したマクロを実行 この(3)のところができません。(というか考え方が分からず・・・) 分かりにくい質問で申し訳ございませんが、アドバイスの程よろしくお願いします。 (ちなみにエクセル2003を使用しています。) エクセルVBAについての質問です VBAについて質問です。 開始入力ボタンと、完了入力ボタンがエクセルシート上にあります。 ボタンを押すとそれぞれのユーザーフォームが立ち上がり、フォーム内の指定したテキストボックスにフォーカスが合うように設定しています。 ユーザーフォームを立ち上げた状態で、エクセル上のボタンを押し、フォームの切り替えが行いたいと考えていて、ユーザーフォームのShowModal プロパティをFalseにしました。 エクセル上のボタンを押すことができるようになったのですが、ユーザーフォーム立ち上げ時にテキストボックスへフォーカスが合わなくなりました。 どうにか解決する方法はないものでしょうか? 教えていただきたいです。 ※完了入力も同じようなユーザーフォームです エクセルVBAのユーザーフォームについての質問です。 エクセルVBAのユーザーフォームについての質問です。 ユーザーフォーム内のラベルの文字を大きくするにはどの様に すれば宜しいのでしょうか。 お教え頂きたく宜しくお願い致します。 エクセルで図形描画のツールバーを出したい WindowsXpSP3 エクセル2003SP3 で図形描画のツールバーが出ません 「表示」-「ツールバー」もしくはツールバーのところで右クリックしたメニューにも図形描画という選択肢が無いために図形描画ツールバーを出すことが出来ません。ユーザー設定のツールバー一覧でも選択肢がありません。 また、ツールバーのユーザー設定で図形描画アイコンを適当なツールバーに配置しクリックしたり、標準のツールバーにある図形描画アイコンをクリックしても何も反応がありませんでした。 ワードで図形を作成し(ワードでは図形描画ツールバーは出ます)エクセルに貼り付けたり、エクセルを再インストールしても変化はありませんでした。 なお、挿入→図→オートシェープも何も反応がありませんし、図形描画以外にも図という選択肢もありません。 図形描画ツールバーや図を出すにはどのようにしたらいいのでしょうか。 Excel VBAからオブジェクト描画 Outlookで管理している予定表を、諸事情から最終的にはExcelに落とさざるをえないので 相談にのっていただきたく投稿します。 場所 月日 午前/午後 --------------------- 1 7/1 AM○/PM 2 7/3 AM /PM○ というようなごく大まかなもので、 AM/PMのところに○の描画オブジェクトをかぶせています。 ただ文字でAM、PMと書くほうが簡単なのですが、 視覚的にわかりやすいのでこのようにすることになっています。 変更があったときなど、Outlookで直してからExcelの表を作り直すのが煩雑です。 OutlookでエクスポートしたデータをExcelにとりこみ、 場所 月日 開始時刻 --------------------- 1 7/1 AM 2 7/3 PM とするところまではできたのですが、このAM、PMという文字情報にあわせて AMセル、PMセルに○オブジェクトを貼り付けるようなマクロはできないでしょうか? エクセルの描画を続けて使うには? エクセルの描画ツールを続けて使うにはどうしたら良いのでしょうか? 例えば直線を描く場合、マウスのポインターをオートシェイプに持っていき直線を選びます(又はAlt-uと矢印キーで)。 マウスのポインターが「+」になります。 そして直線をマウスで引きます。 続けて引こうとすると、またマウスで同じ操作をしてポインターを「+」にしないと直線が引けません。 簡単に続けて同じ描画ツールを使う方法はないでしょうか? またショートカットキー等で描画を選択した状態(ポインターが「+」)にできないでしょうか? Officeは2000と2003を使っています。 よろしくお願い申し上げます。 エクセル・VBAでテキストボックスに入力された文字を エクセル・VBAでテキストボックスに入力された文字を B列から検索し、結果をユーザーフォームのリストbox に表示したいのですがうまくいきません 検索は部分一致・大文字小文字無視で行いたいです よろしくお願いします エクセルの描画ツールについて エクセル2003です。(英語版を使用しています) 描画ツールを続けて使う場合(例えば直線を続けて使う場合)、現在はその都度、描画ツールのLINEボタンを選択しています。 いちいち描画ツールのボタンを押さずに描画を続ける方法はないでしょうか? よろしくお願い申し上げます。 エクセルVBAについて質問です。 初心者なので説明が足りなかったらごめんなさい。 顧客リストを作成するためのユーザーフォームを作成しました。そして、 リスト内の顧客情報を編集する場合には、まず顧客検索するためのユーザーフォーム(テキストボックスに顧客ID(数字のみ)を入力して検索する)で検索を行い、発見したら編集用のユーザーフォームが開きます。 これまでにエクセルで管理されている顧客リストをいちいち登録用のユーザーフォームで登録するのが面倒なので、既存の顧客情報はコピペでエクセルに直接移しました。 ここで困った現象がおきているのですが、登録用のユーザーフォームを使って登録した顧客は検索用のユーザーフォームで検索すると見つかるのですが、 コピペで移してきた顧客は発見されません。(検索条件である顧客IDはちゃんとリストに存在します。) ユーザーフォームを使って登録した顧客ID(数字のみ)はテキストボックスを介しているのでリスト内では文字列として登録されています。 それに対してコピペした顧客IDはセルの書式設定が標準であったため、これが原因かと思い文字列に変えたのですが、相変わらず検索にヒットしません。 何が原因で検索されないのでしょうか。 ちなみに検索に使っているのはFor...Nextステートメントです。 何とぞよろしくお願いします。 ヤバいパソコンが壊れたかも!?事前に知っておきたい3つの兆候と対策 OKWAVE コラム excelで文字を傾かせたい。 excelで、図形描画のテキストボックスで書いた文字を斜めに傾かせたいのですがどうやったらよいかわかりません。 図形描画を使わなくてもかまわないので傾き文字の作り方を教えてください。 2点の距離を記載する際に、斜めに文字をしたいのです。(説明がわかりずらくて申し訳有りません・・・) Excel 2007で、フリーフォーム描画 Excel2007でフリーフォームを直線で描画したい (1)Shift キーを押しながら描画しても、直線にならない(参考画像を添付します) (2)Word2007では、直線、垂直をShiftキーを利用して、簡単に描画できます。 簡単に直線(垂直・水平)が描画できる、良い方法があれば教えてください。 エクセルの図形描画で? Excel2003を使用しています。 セルに文字や数字を入力し、「図形描画」で○や□の線で囲むと文字や数字が隠れてしまいます。 図形描画で書いたオブジェクト(○や□)を背面へ移動するという操作をしても文字や数字が現れて来ません、操作方法を教えて下さい。 ExcelのVBA Excelで、データベースを作成したいと思っています。 新規レコード入力時に、ユーザーフォームを使って入力したいのですが、 ユーザーフォームに入力したデータを、新規レコードとしてシートに保存する方法を教えて下さい。 例えば、住所録で10件のデータが入力されている。 新しい住所データをフォームを使って入力し、指定のボタンをクリックすれば、 11件目としてシートの最後尾(11番目)に保存される。 といった具合です。 EXCEL VBA テキストボックスを見やすくしたい いつもお世話になっております。 EXCEL VBA のユーザーフォーム上の テキストボックスについて教えて下さい。 大きめのテキストボックスを作り 改行を許可して、数十文字を表示させることができたのですが、行と行の間が詰まりすぎていて、見づらいのです。 行間を空ける方法を教えて下さい。 Excel VBA OptionButton Excel VBAのOptionButtonについてお伺いします。 現在、Excel2007にてユーザーフォームを作成しております。 シート上の文字によって、ユーザーフォーム上のオプションボタンの ON/OFFを切り替えたいのですがうまく動作しません。 具体的には・・・・ ユーザフォーム上のCommandButton1を押下すると、 sheet2のE22セルの文字がTRUEの場合、ユーザーフォーム上の OptionButton1がON・OptionButton2がOFF sheet2のE22セルの文字がFALSEの場合、ユーザーフォーム上の OptionButton1がOFF・OptionButton2がON 以下のように考えていたのですが、動作しません。 ------------------------------ Private Sub CommandButton1_Click() If sheet2.Range("E22").Value = "TRUE" Then OptionButton1.Value = True ElseIf sheet2.Range("E22").Value = "FALSE" Then OptionButton2.Value = True End If ------------------------------ お知恵お借りしたく存じます。 宜しくお願い致します。 Excel VBAで 図形を描いてその中に文字を。 教えて下さい。 エクセル2007 VBAで オートシェイプでフローチャートの三角形を描いて、 その中に「検索」などの文字を表示させることが必要になってきました。 どのように記述すればいいのですか? >ActiveSheet.Shapes.AddShape msoShapeIsoscelesTriangle, 560, 60, 70, 80 これで三角形は描画できますが、その中に文字を記入させるにはどうすればいいのかを教えて下さい。よろしくお願いします。 OneNote 2010 文字と描画がずれる OneNote 2010で、特定の範囲の文字と描画がずれないようにする方法はありませんか? 例えば、2行を描画で ) とか 〕 のようなマークでくくるとします。さらにそこから → なんて付けたりすることもあります。 ところが、ちょっとフォントを変えたり、レイアウトを変更すると、これらの記号が違う行にくっついてしまうので困っています。 後から見たら、勘違いしてしまうかもしれません。これを避けたいのです。 用途は社会人学生の講義ノートです。 注目のQ&A 「You」や「I」が入った曲といえば? Part2 結婚について考えていない大学生の彼氏について 関東の方に聞きたいです 大阪万博について 駅の清涼飲料水自販機 不倫の慰謝料の請求について 新型コロナウイルスがもたらした功績について教えて 旧姓を使う理由。 回復メディアの保存方法 好きな人を諦める方法 小諸市(長野県)在住でスキーやスノボをする方の用具 カテゴリ パソコン・スマートフォン ソフトウェア Excel(エクセル)Word(ワード)PowerPoint(パワーポイント)Access(アクセス)その他MS Office製品オフィス系ソフトPhotoshop(フォトショップ)Illustrator(イラストレーター)その他Adobe製品画像・動画・音楽編集ホームページ作成ソフト筆まめ・はがき作成フリーウェア・フリーソフトその他(ソフトウェア) カテゴリ一覧を見る OKWAVE コラム 突然のトラブル?プリンター・メール・LINE編 携帯料金を賢く見直す!格安SIMと端末選びのポイントは? 友達って必要?友情って何だろう 大震災時の現実とは?私たちができる備え 「結婚相談所は恥ずかしい」は時代遅れ!負け組の誤解と出会いの掴み方 あなたにピッタリな商品が見つかる! OKWAVE セレクト コスメ化粧品 化粧水・クレンジングなど 健康食品・サプリ コンブチャなど バス用品 入浴剤・アミノ酸シャンプーなど スマホアプリ マッチングアプリなど ヘアケア 白髪染めヘアカラーなど インターネット回線 プロバイダ、光回線など
補足
早速の回答ありがとうございます。 リンク先、参考にさせていただきます。 >>文字をグラフィック描画する方法 >はどういうイメージ(考え方、必要性)なんでしょうか。 についてですが、VB6で言うところの、 「Me.Print "いろは"」と同等の事を行いたいのです。