• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:図形とコードを連携し、コード入力で図形を選択できるツールは有りますか)

図形とコードを連携し、コード入力で図形を選択できるツールは有りますか?

このQ&Aのポイント
  • 建築分野では見積書、納品・請求書等を作成する場合、建材の加工木材等は商品名に加えてイメージの図形を書き加える必要があります。図形専用のテンプレートを利用して手書きをしているのが一般的ですが、最近頂いたある業者からの請求書は、パソコンで出力されたものにそれらの図形が印刷されていました。
  • 関数VLOOKUPを使えば、あるコードを入力するとそのコードに対応するセルの情報に変換することが出来ますが、セルの中に図形は取り込めません。図形をフォント化すれば、セルの中にデータとして入力できますから、あの請求書の図形はフォント化されたものではないかと思いサイズを測定したところ、漢字1文字相当で全て表示されておりました。
  • ここで質問が2つあります。1.図形をTrueTypeFontとして作成するのは面倒なので、既に台形,変形台形,2等辺3角形,変形3角形,等の図形をフォント化して市販されているようなものが有るでしょうか。2.実用的にはEXCELで図形を利用できるのだからセルの中に図形を取り込むようには出来ないか。または、関数で図形の選択を可能とするものがないか。という素朴な疑問を持っているのですが、なかなか判りません。どなたか判る方は居りませんか? よろしくお願いいたします。

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

  • ベストアンサー
回答No.1

既成の図形フォントについてはわかりませんが、 既に図形データがあるのでしたら、次のようなマクロを試してみてください。 ここでは、保存してある図形データが *.gif 形式と仮定しています。(2085.gif のように数字名なら便利です) まず、次のコマンド行を、VB Editor の 標準モジュールにコピーし、5行目の ( )内 の 最初の " "内を 実際に図形が保存されているフォルダへのパスに変更してください。 '--------- コピーは次の行から -------- Sub ImgIn() GRPCD = InputBox("図形名を入力して下さい") ActiveCell.Select VH = ActiveCell.Height ActiveSheet.Pictures.Insert("C:\_Ann's\Zone_4\" & GRPCD & ".gif").Select Selection.ShapeRange.LockAspectRatio = msoTrue Selection.ShapeRange.Height = VH End Sub '--------- コピーは上の行まで -------- VB Editor を終了してから、とりあえず [ツール]-[マクロ]-[マクロ] で ImgIn を選択して実行してください。 ※存在しない図形名が入力された場合のエラー処理はしていません。 ご自身でカスタマイズされ、マクロボタンに関連付けられれば便利かと‥‥。

aquas412
質問者

お礼

VB Editorの利用は未経験ですが、これを機にご教示の内容を自分で試してみたいと思います。 実際に作成してみないと判りませんが、これが私の問題の解決になれば、効果は相当大きいものと思います。 取り敢えず、問題解決の糸口を与えて頂いた「misatoanna」様に感謝して、お礼を申し上げます。ありがとうございました。

aquas412
質問者

補足

図形データが(保存して)あるとしたら。 図形データが*.gif形式と仮定しています。 に引っかかって先に進めません。 Excelで図形描画のオートシェイブから基本図形やフローチャートを選択して、1つのセルの中に1つの図形を作成しました。 これをどの様にすれば、gif画像に変換するのかが解りません。 オートシェイブの図形と画像の判別も定かではなかったので、四苦八苦しております。 これがクリヤできないと、本来の回答には届かないので、何とかしたいのですが、よろしくお願いします。

その他の回答 (2)

回答No.3

またまた#1です。 > Excelで図形描画のオートシェイブから基本図形やフローチャートを > 選択して、1つのセルの中に1つの図形を作成しました。これを > どの様にすれば、gif画像に変換するのかが解りません。 送れて申し訳ありません。 Gifへの変換ですが、ペイントを利用されればよいと思います。 操作方法は―― 1.ペイントを起動し、キャンバスサイズをできるだけ小さく設定します。 2.エクセルで描いたオートシェイプをぎりぎり囲む範囲でコピーします。 3.ペイントに貼り付けます。   このとき、貼り付ける図形が大きすぎ‥‥のメッセージが出ます   ので、ビットマップのサイズを合わせるように指定してください。 4.貼り付けられたら、ファイルの種類を Gif形式で保存します。 以上です。 前回のマクロは、選択したセルの高さに合わせて自動縮小して図を取り込みますので、取り込む先のセルが小さい場合は、元になるオートシェイプ図形は、小さ目に作成されたほうがよろしいかと思います。

aquas412
質問者

お礼

何から何までお世話になり、ありがとうございました。 お陰様でどうにか目途がたちました。 画像にしてみると、拡大したい場合などは問題でしょうが、当面の回答としては十分満足です。 この問題に応えるのは最終的にはフォント化する以外に無いという事なのでしょう。 感謝!感謝!

回答No.2

#1の補足です。 図形が貼り付けられる先は、マクロ実行前にアクティブになっているセルです。 ただしエクセルでは、図形とシートは別々ですので、セル内に貼り付けられたようでも、あくまでもその"位置"に置かれただけで、"セル"とは連動しません。

aquas412
質問者

お礼

Excelの関数やマクロではシートやセルとの関連であり、図形との連動は出来ないので、図形をフォント化するのが答えと思っておりました。 TrueTypeFontを加工編集出来る「TTEdit」等をDownloadして面倒な作業をしなければならないのかと思っていた矢先でした。 ご教示の補足は良く理解できますから、図形の処理をどの様に解決するかは疑問でしたが、その答えがVBにあったのですね。 知っている人は知っているのでしょうが、「目から鱗がとれる」思いです。 とにかく、ありがとうございました。 といっても、チャレンジはこれからです。がんばります。